-
Notifications
You must be signed in to change notification settings - Fork 5
/
tables.html
179 lines (153 loc) · 740 KB
/
tables.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="pandoc" />
<title>Human disease network of shared genetic etiology</title>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4xIHwgKGMpIDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMSIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSk+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1tLnR5cGUoYSl8fGEubm9kZVR5cGV8fG0uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFqLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWouY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKGsub3duTGFzdClmb3IoYiBpbiBhKXJldHVybiBqLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ai5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2hbaS5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbS50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKG8sIm1zLSIpLnJlcGxhY2UocCxxKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPTAsZj1hLmxlbmd0aCxnPXIoYSk7aWYoYyl7aWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5hcHBseShhW2VdLGMpLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgaWYoZyl7Zm9yKDtmPmU7ZSsrKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlmKGQ9Yi5jYWxsKGFbZV0sZSxhW2VdKSxkPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobiwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocihPYmplY3QoYSkpP20ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmYuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihnKXJldHVybiBnLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj0wLGc9YS5sZW5ndGgsaD1yKGEpLGk9W107aWYoaClmb3IoO2c+ZjtmKyspZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7ZWxzZSBmb3IoZiBpbiBhKWQ9YihhW2ZdLGYsYyksbnVsbCE9ZCYmaS5wdXNoKGQpO3JldHVybiBlLmFwcGx5KFtdLGkpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG0uaXNGdW5jdGlvbihhKT8oYz1kLmNhbGwoYXJndW1lbnRzLDIpLGU9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGQuY2FsbChhcmd1bWVudHMpKSl9LGUuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxtLmd1aWQrKyxlKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDprfSksbS5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7aFsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93ZXJDYXNlKCl9KTtmdW5jdGlvbiByKGEpe3ZhciBiPWEubGVuZ3RoLGM9bS50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxtLmlzV2luZG93KGEpPyExOjE9PT1hLm5vZGVUeXBlJiZiPyEwOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciBzPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrLW5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2IoKSx6PWdiKCksQT1nYigpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPSJ1bmRlZmluZWQiLEQ9MTw8MzEsRT17fS5oYXNPd25Qcm9wZXJ0eSxGPVtdLEc9Ri5wb3AsSD1GLnB1c2gsST1GLnB1c2gsSj1GLnNsaWNlLEs9Ri5pbmRleE9mfHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LEw9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixOPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTz1OLnJlcGxhY2UoInciLCJ3IyIpLFA9IlxcWyIrTSsiKigiK04rIikoPzoiK00rIiooWypeJHwhfl0/PSkiK00rIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitPKyIpKXwpIitNKyIqXFxdIixRPSI6KCIrTisiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrUCsiKSopfC4qKVxcKXwpIixSPW5ldyBSZWdFeHAoIl4iK00rIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTSsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitNKyIqLCIrTSsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTSsiKihbPit+XXwiK00rIikiK00rIioiKSxVPW5ldyBSZWdFeHAoIj0iK00rIiooW15cXF0nXCJdKj8pIitNKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChRKSxXPW5ldyBSZWdFeHAoIl4iK08rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK04rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTisiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTi5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrUCksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1EpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0wrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYj0vWyt+XS8sYmI9Lyd8XFwvZyxjYj1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK00rIj98KCIrTSsiKXwuKSIsImlnIiksZGI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9O3RyeXtJLmFwcGx5KEY9Si5jYWxsKHYuY2hpbGROb2Rlcyksdi5jaGlsZE5vZGVzKSxGW3YuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGViKXtJPXthcHBseTpGLmxlbmd0aD9mdW5jdGlvbihhLGIpe0guYXBwbHkoYSxKLmNhbGwoYikpfTpmdW5jdGlvbihhLGIpe3ZhciBjPWEubGVuZ3RoLGQ9MDt3aGlsZShhW2MrK109YltkKytdKTthLmxlbmd0aD1jLTF9fX1mdW5jdGlvbiBmYihhLGIsZCxlKXt2YXIgZixoLGosayxsLG8scixzLHcseDtpZigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixkPWR8fFtdLCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIGQ7aWYoMSE9PShrPWIubm9kZVR5cGUpJiY5IT09aylyZXR1cm5bXTtpZihwJiYhZSl7aWYoZj1fLmV4ZWMoYSkpaWYoaj1mWzFdKXtpZig5PT09ayl7aWYoaD1iLmdldEVsZW1lbnRCeUlkKGopLCFofHwhaC5wYXJlbnROb2RlKXJldHVybiBkO2lmKGguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNlIGlmKGIub3duZXJEb2N1bWVudCYmKGg9Yi5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGopKSYmdChiLGgpJiZoLmlkPT09ailyZXR1cm4gZC5wdXNoKGgpLGR9ZWxzZXtpZihmWzJdKXJldHVybiBJLmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoaj1mWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEkuYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTk9PT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYiwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3FiKG9bbF0pO3c9YWIudGVzdChhKSYmb2IoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBJLmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdiKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYihhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGliKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamIoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2IoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEQpLSh+YS5zb3VyY2VJbmRleHx8RCk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxiKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1iKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYihhKXtyZXR1cm4gaGIoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGIoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYihhKXtyZXR1cm4gYSYmdHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUhPT1DJiZhfWM9ZmIuc3VwcG9ydD17fSxmPWZiLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZiLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGU9YT9hLm93bmVyRG9jdW1lbnR8fGE6dixnPWUuZGVmYXVsdFZpZXc7cmV0dXJuIGUhPT1uJiY5PT09ZS5ub2RlVHlwZSYmZS5kb2N1bWVudEVsZW1lbnQ/KG49ZSxvPWUuZG9jdW1lbnRFbGVtZW50LHA9IWYoZSksZyYmZyE9PWcudG9wJiYoZy5hZGRFdmVudExpc3RlbmVyP2cuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixmdW5jdGlvbigpe20oKX0sITEpOmcuYXR0YWNoRXZlbnQmJmcuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe20oKX0pKSxjLmF0dHJpYnV0ZXM9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSYmaWIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSdhJz48L2Rpdj48ZGl2IGNsYXNzPSdhIGknPjwvZGl2PiIsYS5maXJzdENoaWxkLmNsYXNzTmFtZT0iaSIsMj09PWEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiaSIpLmxlbmd0aH0pLGMuZ2V0QnlJZD1pYihmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFlLmdldEVsZW1lbnRzQnlOYW1lfHwhZS5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRCeUlkIT09QyYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYyYmYy5wYXJlbnROb2RlP1tjXTpbXX19LGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYixkYik7cmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiaWQiKT09PWJ9fSk6KGRlbGV0ZSBkLmZpbmQuSUQsZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGNiLGRiKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGM9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSE9PUMmJmEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gYyYmYy52YWx1ZT09PWJ9fSksZC5maW5kLlRBRz1jLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIHR5cGVvZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Qz9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnZvaWQgMH06ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9MCxmPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSk7aWYoIioiPT09YSl7d2hpbGUoYz1mW2UrK10pMT09PWMubm9kZVR5cGUmJmQucHVzaChjKTtyZXR1cm4gZH1yZXR1cm4gZn0sZC5maW5kLkNMQVNTPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oYSxiKXtyZXR1cm4gdHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9PUMmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZS5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYihmdW5jdGlvbihhKXthLmlubmVySFRNTD0iPHNlbGVjdCBtc2FsbG93Y2xpcD0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NsaXBePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK0wrIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIil9KSxpYihmdW5jdGlvbihhKXt2YXIgYj1lLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK00rIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj0kLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmliKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixRKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9JC50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8JC50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09ZXx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1lfHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGY9YS5wYXJlbnROb2RlLGc9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFmfHwhZylyZXR1cm4gYT09PWU/LTE6Yj09PWU/MTpmPy0xOmc/MTprP0suY2FsbChrLGEpLUsuY2FsbChrLGIpOjA7aWYoZj09PWcpcmV0dXJuIGtiKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3doaWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9rYihoW2RdLGlbZF0pOmhbZF09PT12Py0xOmlbZF09PT12PzE6MH0sZSk6bn0sZmIubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYihhLG51bGwsbnVsbCxiKX0sZmIubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFUsIj0nJDEnXSIpLCEoIWMubWF0Y2hlc1NlbGVjdG9yfHwhcHx8ciYmci50ZXN0KGIpfHxxJiZxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYihiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYi5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZiLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZFLmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYi5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYi5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmIuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGIsbWF0Y2g6WCxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGNiLGRiKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShjYixkYiksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZiLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZiLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBYLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlYudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2IsZGIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2ErIigiK00rInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fHR5cGVvZiBhLmdldEF0dHJpYnV0ZSE9PUMmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZiLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaDtpZihxKXtpZihmKXt3aGlsZShwKXtsPWI7d2hpbGUobD1sW3BdKWlmKGg/bC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09cjoxPT09bC5ub2RlVHlwZSlyZXR1cm4hMTtvPXA9Im9ubHkiPT09YSYmIW8mJiJuZXh0U2libGluZyJ9cmV0dXJuITB9aWYobz1bZz9xLmZpcnN0Q2hpbGQ6cS5sYXN0Q2hpbGRdLGcmJnMpe2s9cVt1XXx8KHFbdV09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSxtPWpbMF09PT13JiZqWzJdLGw9biYmcS5jaGlsZE5vZGVzW25dO3doaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKDE9PT1sLm5vZGVUeXBlJiYrK20mJmw9PT1iKXtrW2FdPVt3LG4sbV07YnJlYWt9fWVsc2UgaWYocyYmKGo9KGJbdV18fChiW3VdPXt9KSlbYV0pJiZqWzBdPT09dyltPWpbMV07ZWxzZSB3aGlsZShsPSsrbiYmbCYmbFtwXXx8KG09bj0wKXx8by5wb3AoKSlpZigoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKSYmKyttJiYocyYmKChsW3VdfHwobFt1XT17fSkpW2FdPVt3LG1dKSxsPT09YikpYnJlYWs7cmV0dXJuIG0tPWUsbT09PWR8fG0lZD09PTAmJm0vZD49MH19fSxQU0VVRE86ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPWQucHNldWRvc1thXXx8ZC5zZXRGaWx0ZXJzW2EudG9Mb3dlckNhc2UoKV18fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGVbdV0/ZShiKTplLmxlbmd0aD4xPyhjPVthLGEsIiIsYl0sZC5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/aGIoZnVuY3Rpb24oYSxjKXt2YXIgZCxmPWUoYSxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSlkPUsuY2FsbChhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYihmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aGIoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksIWMucG9wKCl9fSksaGFzOmhiKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmIoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYihmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuKGIudGV4dENvbnRlbnR8fGIuaW5uZXJUZXh0fHxlKGIpKS5pbmRleE9mKGEpPi0xfX0pLGxhbmc6aGIoZnVuY3Rpb24oYSl7cmV0dXJuIFcudGVzdChhfHwiIil8fGZiLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2EpLGE9YS5yZXBsYWNlKGNiLGRiKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGIpe3ZhciBjO2RvIGlmKGM9cD9iLmxhbmc6Yi5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGIuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuIGM9Yy50b0xvd2VyQ2FzZSgpLGM9PT1hfHwwPT09Yy5pbmRleE9mKGErIi0iKTt3aGlsZSgoYj1iLnBhcmVudE5vZGUpJiYxPT09Yi5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGIpe3ZhciBjPWEubG9jYXRpb24mJmEubG9jYXRpb24uaGFzaDtyZXR1cm4gYyYmYy5zbGljZSgxKT09PWIuaWR9LHJvb3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1vfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW4uYWN0aXZlRWxlbWVudCYmKCFuLmhhc0ZvY3VzfHxuLmhhc0ZvY3VzKCkpJiYhIShhLnR5cGV8fGEuaHJlZnx8fmEudGFiSW5kZXgpfSxlbmFibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITF9LGRpc2FibGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYhIWEuY2hlY2tlZHx8Im9wdGlvbiI9PT1iJiYhIWEuc2VsZWN0ZWR9LHNlbGVjdGVkOmZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LGEuc2VsZWN0ZWQ9PT0hMH0sZW1wdHk6ZnVuY3Rpb24oYSl7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWlmKGEubm9kZVR5cGU8NilyZXR1cm4hMTtyZXR1cm4hMH0scGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybiFkLnBzZXVkb3MuZW1wdHkoYSl9LGhlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gWi50ZXN0KGEubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihhKXtyZXR1cm4gWS50ZXN0KGEubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlwZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJpbnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlwZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1iLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpuYihmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bmIoZnVuY3Rpb24oYSxiKXtyZXR1cm5bYi0xXX0pLGVxOm5iKGZ1bmN0aW9uKGEsYixjKXtyZXR1cm5bMD5jP2MrYjpjXX0pLGV2ZW46bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MDtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6bmIoZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MTtiPmM7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxsdDpuYihmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzstLWQ+PTA7KWEucHVzaChkKTtyZXR1cm4gYX0pLGd0Om5iKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJuIGF9KX19LGQucHNldWRvcy5udGg9ZC5wc2V1ZG9zLmVxO2ZvcihiIGlue3JhZGlvOiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KWQucHNldWRvc1tiXT1sYihiKTtmb3IoYiBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KWQucHNldWRvc1tiXT1tYihiKTtmdW5jdGlvbiBwYigpe31wYi5wcm90b3R5cGU9ZC5maWx0ZXJzPWQucHNldWRvcyxkLnNldEZpbHRlcnM9bmV3IHBiLGc9ZmIudG9rZW5pemU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxoLGksaixrPXpbYSsiICJdO2lmKGspcmV0dXJuIGI/MDprLnNsaWNlKDApO2g9YSxpPVtdLGo9ZC5wcmVGaWx0ZXI7d2hpbGUoaCl7KCFjfHwoZT1TLmV4ZWMoaCkpKSYmKGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9VC5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShSLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9WFtnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZiLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWIoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYihhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqPVt3LGZdO2lmKGcpe3doaWxlKGI9YltkXSlpZigoMT09PWIubm9kZVR5cGV8fGUpJiZhKGIsYyxnKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSl7aWYoaT1iW3VdfHwoYlt1XT17fSksKGg9aVtkXSkmJmhbMF09PT13JiZoWzFdPT09ZilyZXR1cm4galsyXT1oWzJdO2lmKGlbZF09aixqWzJdPWEoYixjLGcpKXJldHVybiEwfX19ZnVuY3Rpb24gc2IoYSl7cmV0dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3doaWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19ZnVuY3Rpb24gdGIoYSxiLGMpe2Zvcih2YXIgZD0wLGU9Yi5sZW5ndGg7ZT5kO2QrKylmYihhLGJbZF0sYyk7cmV0dXJuIGN9ZnVuY3Rpb24gdWIoYSxiLGMsZCxlKXtmb3IodmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aT5oO2grKykoZj1hW2hdKSYmKCFjfHxjKGYsZCxlKSkmJihnLnB1c2goZiksaiYmYi5wdXNoKGgpKTtyZXR1cm4gZ31mdW5jdGlvbiB2YihhLGIsYyxkLGUsZil7cmV0dXJuIGQmJiFkW3VdJiYoZD12YihkKSksZSYmIWVbdV0mJihlPXZiKGUsZikpLGhiKGZ1bmN0aW9uKGYsZyxoLGkpe3ZhciBqLGssbCxtPVtdLG49W10sbz1nLmxlbmd0aCxwPWZ8fHRiKGJ8fCIqIixoLm5vZGVUeXBlP1toXTpoLFtdKSxxPSFhfHwhZiYmYj9wOnViKHAsbSxhLGgsaSkscj1jP2V8fChmP2E6b3x8ZCk/W106ZzpxO2lmKGMmJmMocSxyLGgsaSksZCl7aj11YihyLG4pLGQoaixbXSxoLGkpLGs9ai5sZW5ndGg7d2hpbGUoay0tKShsPWpba10pJiYocltuW2tdXT0hKHFbbltrXV09bCkpfWlmKGYpe2lmKGV8fGEpe2lmKGUpe2o9W10saz1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJmoucHVzaChxW2tdPWwpO2UobnVsbCxyPVtdLGosaSl9az1yLmxlbmd0aDt3aGlsZShrLS0pKGw9cltrXSkmJihqPWU/Sy5jYWxsKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YihyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SS5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2IoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYihmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmIoZnVuY3Rpb24oYSl7cmV0dXJuIEsuY2FsbChiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7cmV0dXJuIWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSl9XTtmPmk7aSsrKWlmKGM9ZC5yZWxhdGl2ZVthW2ldLnR5cGVdKW09W3JiKHNiKG0pLGMpXTtlbHNle2lmKGM9ZC5maWx0ZXJbYVtpXS50eXBlXS5hcHBseShudWxsLGFbaV0ubWF0Y2hlcyksY1t1XSl7Zm9yKGU9KytpO2Y+ZTtlKyspaWYoZC5yZWxhdGl2ZVthW2VdLnR5cGVdKWJyZWFrO3JldHVybiB2YihpPjEmJnNiKG0pLGk+MSYmcWIoYS5zbGljZSgwLGktMSkuY29uY2F0KHt2YWx1ZToiICI9PT1hW2ktMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZShSLCIkMSIpLGMsZT5pJiZ3YihhLnNsaWNlKGksZSkpLGY+ZSYmd2IoYT1hLnNsaWNlKGUpKSxmPmUmJnFiKGEpKX1tLnB1c2goYyl9cmV0dXJuIHNiKG0pfWZ1bmN0aW9uIHhiKGEsYil7dmFyIGM9Yi5sZW5ndGg+MCxlPWEubGVuZ3RoPjAsZj1mdW5jdGlvbihmLGcsaCxpLGspe3ZhciBsLG0sbyxwPTAscT0iMCIscj1mJiZbXSxzPVtdLHQ9aix1PWZ8fGUmJmQuZmluZC5UQUcoIioiLGspLHY9dys9bnVsbD09dD8xOk1hdGgucmFuZG9tKCl8fC4xLHg9dS5sZW5ndGg7Zm9yKGsmJihqPWchPT1uJiZnKTtxIT09eCYmbnVsbCE9KGw9dVtxXSk7cSsrKXtpZihlJiZsKXttPTA7d2hpbGUobz1hW20rK10paWYobyhsLGcsaCkpe2kucHVzaChsKTticmVha31rJiYodz12KX1jJiYoKGw9IW8mJmwpJiZwLS0sZiYmci5wdXNoKGwpKX1pZihwKz1xLGMmJnEhPT1wKXttPTA7d2hpbGUobz1iW20rK10pbyhyLHMsZyxoKTtpZihmKXtpZihwPjApd2hpbGUocS0tKXJbcV18fHNbcV18fChzW3FdPUcuY2FsbChpKSk7cz11YihzKX1JLmFwcGx5KGkscyksayYmIWYmJnMubGVuZ3RoPjAmJnArYi5sZW5ndGg+MSYmZmIudW5pcXVlU29ydChpKX1yZXR1cm4gayYmKHc9dixqPXQpLHJ9O3JldHVybiBjP2hiKGYpOmZ9cmV0dXJuIGg9ZmIuY29tcGlsZT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1bXSxmPUFbYSsiICJdO2lmKCFmKXtifHwoYj1nKGEpKSxjPWIubGVuZ3RoO3doaWxlKGMtLSlmPXdiKGJbY10pLGZbdV0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPUEoYSx4YihlLGQpKSxmLnNlbGVjdG9yPWF9cmV0dXJuIGZ9LGk9ZmIuc2VsZWN0PWZ1bmN0aW9uKGEsYixlLGYpe3ZhciBpLGosayxsLG0sbj0iZnVuY3Rpb24iPT10eXBlb2YgYSYmYSxvPSFmJiZnKGE9bi5zZWxlY3Rvcnx8YSk7aWYoZT1lfHxbXSwxPT09by5sZW5ndGgpe2lmKGo9b1swXT1vWzBdLnNsaWNlKDApLGoubGVuZ3RoPjImJiJJRCI9PT0oaz1qWzBdKS50eXBlJiZjLmdldEJ5SWQmJjk9PT1iLm5vZGVUeXBlJiZwJiZkLnJlbGF0aXZlW2pbMV0udHlwZV0pe2lmKGI9KGQuZmluZC5JRChrLm1hdGNoZXNbMF0ucmVwbGFjZShjYixkYiksYil8fFtdKVswXSwhYilyZXR1cm4gZTtuJiYoYj1iLnBhcmVudE5vZGUpLGE9YS5zbGljZShqLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPVgubmVlZHNDb250ZXh0LnRlc3QoYSk/MDpqLmxlbmd0aDt3aGlsZShpLS0pe2lmKGs9altpXSxkLnJlbGF0aXZlW2w9ay50eXBlXSlicmVhaztpZigobT1kLmZpbmRbbF0pJiYoZj1tKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNiLGRiKSxhYi50ZXN0KGpbMF0udHlwZSkmJm9iKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYihqKSwhYSlyZXR1cm4gSS5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSxhYi50ZXN0KGEpJiZvYihiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWIoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGpiKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmliKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGpiKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGliKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYihMLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYn0oYSk7bS5maW5kPXMsbS5leHByPXMuc2VsZWN0b3JzLG0uZXhwclsiOiJdPW0uZXhwci5wc2V1ZG9zLG0udW5pcXVlPXMudW5pcXVlU29ydCxtLnRleHQ9cy5nZXRUZXh0LG0uaXNYTUxEb2M9cy5pc1hNTCxtLmNvbnRhaW5zPXMuY29udGFpbnM7dmFyIHQ9bS5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx1PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPnwpJC8sdj0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHcoYSxiLGMpe2lmKG0uaXNGdW5jdGlvbihiKSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbS5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYodi50ZXN0KGIpKXJldHVybiBtLmZpbHRlcihiLGEsYyk7Yj1tLmZpbHRlcihiLGEpfXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbS5pbkFycmF5KGEsYik+PTAhPT1jfSl9bS5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bS5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTptLmZpbmQubWF0Y2hlcyhhLG0uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbS5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG0oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG0uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbS5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bS51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHcodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXcodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJnQudGVzdChhKT9tKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIHgseT1hLmRvY3VtZW50LHo9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0qKSkkLyxBPW0uZm4uaW5pdD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYoIWEpcmV0dXJuIHRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBhKXtpZihjPSI8Ij09PWEuY2hhckF0KDApJiYiPiI9PT1hLmNoYXJBdChhLmxlbmd0aC0xKSYmYS5sZW5ndGg+PTM/W251bGwsYSxudWxsXTp6LmV4ZWMoYSksIWN8fCFjWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8eCkuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoY1sxXSl7aWYoYj1iIGluc3RhbmNlb2YgbT9iWzBdOmIsbS5tZXJnZSh0aGlzLG0ucGFyc2VIVE1MKGNbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6eSwhMCkpLHUudGVzdChjWzFdKSYmbS5pc1BsYWluT2JqZWN0KGIpKWZvcihjIGluIGIpbS5pc0Z1bmN0aW9uKHRoaXNbY10pP3RoaXNbY10oYltjXSk6dGhpcy5hdHRyKGMsYltjXSk7cmV0dXJuIHRoaXN9aWYoZD15LmdldEVsZW1lbnRCeUlkKGNbMl0pLGQmJmQucGFyZW50Tm9kZSl7aWYoZC5pZCE9PWNbMl0pcmV0dXJuIHguZmluZChhKTt0aGlzLmxlbmd0aD0xLHRoaXNbMF09ZH1yZXR1cm4gdGhpcy5jb250ZXh0PXksdGhpcy5zZWxlY3Rvcj1hLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU/KHRoaXMuY29udGV4dD10aGlzWzBdPWEsdGhpcy5sZW5ndGg9MSx0aGlzKTptLmlzRnVuY3Rpb24oYSk/InVuZGVmaW5lZCIhPXR5cGVvZiB4LnJlYWR5P3gucmVhZHkoYSk6YShtKToodm9pZCAwIT09YS5zZWxlY3RvciYmKHRoaXMuc2VsZWN0b3I9YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KSxtLm1ha2VBcnJheShhLHRoaXMpKX07QS5wcm90b3R5cGU9bS5mbix4PW0oeSk7dmFyIEI9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sQz17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTttLmV4dGVuZCh7ZGlyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPWFbYl07d2hpbGUoZSYmOSE9PWUubm9kZVR5cGUmJih2b2lkIDA9PT1jfHwxIT09ZS5ub2RlVHlwZXx8IW0oZSkuaXMoYykpKTE9PT1lLm5vZGVUeXBlJiZkLnB1c2goZSksZT1lW2JdO3JldHVybiBkfSxzaWJsaW5nOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfX0pLG0uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1tKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobS5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXQudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP20oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm0uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9tLnVuaXF1ZShmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP20uaW5BcnJheSh0aGlzWzBdLG0oYSkpOm0uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS51bmlxdWUobS5tZXJnZSh0aGlzLmdldCgpLG0oYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09YT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihhKSl9fSk7ZnVuY3Rpb24gRChhLGIpe2RvIGE9YVtiXTt3aGlsZShhJiYxIT09YS5ub2RlVHlwZSk7cmV0dXJuIGF9bS5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5wYXJlbnROb2RlO3JldHVybiBiJiYxMSE9PWIubm9kZVR5cGU/YjpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBtLmRpcihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBEKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBtLmRpcihhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiBtLnNpYmxpbmcoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDptLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe20uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1tLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW0uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihDW2FdfHwoZT1tLnVuaXF1ZShlKSksQi50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSkpLHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBFPS9cUysvZyxGPXt9O2Z1bmN0aW9uIEcoYSl7dmFyIGI9RlthXT17fTtyZXR1cm4gbS5lYWNoKGEubWF0Y2goRSl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bS5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/RlthXXx8RyhhKTptLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmLGcsaD1bXSxpPSFhLm9uY2UmJltdLGo9ZnVuY3Rpb24obCl7Zm9yKGM9YS5tZW1vcnkmJmwsZD0hMCxmPWd8fDAsZz0wLGU9aC5sZW5ndGgsYj0hMDtoJiZlPmY7ZisrKWlmKGhbZl0uYXBwbHkobFswXSxsWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlKXtjPSExO2JyZWFrfWI9ITEsaCYmKGk/aS5sZW5ndGgmJmooaS5zaGlmdCgpKTpjP2g9W106ay5kaXNhYmxlKCkpfSxrPXthZGQ6ZnVuY3Rpb24oKXtpZihoKXt2YXIgZD1oLmxlbmd0aDshZnVuY3Rpb24gZihiKXttLmVhY2goYixmdW5jdGlvbihiLGMpe3ZhciBkPW0udHlwZShjKTsiZnVuY3Rpb24iPT09ZD9hLnVuaXF1ZSYmay5oYXMoYyl8fGgucHVzaChjKTpjJiZjLmxlbmd0aCYmInN0cmluZyIhPT1kJiZmKGMpfSl9KGFyZ3VtZW50cyksYj9lPWgubGVuZ3RoOmMmJihnPWQsaihjKSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBoJiZtLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYyl7dmFyIGQ7d2hpbGUoKGQ9bS5pbkFycmF5KGMsaCxkKSk+LTEpaC5zcGxpY2UoZCwxKSxiJiYoZT49ZCYmZS0tLGY+PWQmJmYtLSl9KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bS5pbkFycmF5KGEsaCk+LTE6ISghaHx8IWgubGVuZ3RoKX0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gaD1bXSxlPTAsdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWk9Yz12b2lkIDAsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haH0sbG9jazpmdW5jdGlvbigpe3JldHVybiBpPXZvaWQgMCxjfHxrLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4haX0sZmlyZVdpdGg6ZnVuY3Rpb24oYSxjKXtyZXR1cm4haHx8ZCYmIWl8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sYj9pLnB1c2goYyk6aihjKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBrLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBrfSxtLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG0uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbS5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBtLkRlZmVycmVkKGZ1bmN0aW9uKGMpe20uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bS5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZtLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5kb25lKGMucmVzb2x2ZSkuZmFpbChjLnJlamVjdCkucHJvZ3Jlc3MoYy5ub3RpZnkpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP20uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbS5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1kLmNhbGwoYXJndW1lbnRzKSxlPWMubGVuZ3RoLGY9MSE9PWV8fGEmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2U6MCxnPTE9PT1mP2E6bS5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihlKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZC5jYWxsKGFyZ3VtZW50cyk6ZSxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGU+MSlmb3IoaT1uZXcgQXJyYXkoZSksaj1uZXcgQXJyYXkoZSksaz1uZXcgQXJyYXkoZSk7ZT5iO2IrKyljW2JdJiZtLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5kb25lKGgoYixrLGMpKS5mYWlsKGcucmVqZWN0KS5wcm9ncmVzcyhoKGIsaixpKSk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEg7bS5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbS5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxtLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9tLnJlYWR5V2FpdCsrOm0ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXtpZihhPT09ITA/IS0tbS5yZWFkeVdhaXQ6IW0uaXNSZWFkeSl7aWYoIXkuYm9keSlyZXR1cm4gc2V0VGltZW91dChtLnJlYWR5KTttLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW0ucmVhZHlXYWl0PjB8fChILnJlc29sdmVXaXRoKHksW21dKSxtLmZuLnRyaWdnZXJIYW5kbGVyJiYobSh5KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxtKHkpLm9mZigicmVhZHkiKSkpfX19KTtmdW5jdGlvbiBJKCl7eS5hZGRFdmVudExpc3RlbmVyPyh5LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSkpOih5LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSikpfWZ1bmN0aW9uIEooKXsoeS5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1ldmVudC50eXBlfHwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKSYmKEkoKSxtLnJlYWR5KCkpfW0ucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtpZighSClpZihIPW0uRGVmZXJyZWQoKSwiY29tcGxldGUiPT09eS5yZWFkeVN0YXRlKXNldFRpbWVvdXQobS5yZWFkeSk7ZWxzZSBpZih5LmFkZEV2ZW50TGlzdGVuZXIpeS5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixKLCExKSxhLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEosITEpO2Vsc2V7eS5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixKKSxhLmF0dGFjaEV2ZW50KCJvbmxvYWQiLEopO3ZhciBjPSExO3RyeXtjPW51bGw9PWEuZnJhbWVFbGVtZW50JiZ5LmRvY3VtZW50RWxlbWVudH1jYXRjaChkKXt9YyYmYy5kb1Njcm9sbCYmIWZ1bmN0aW9uIGUoKXtpZighbS5pc1JlYWR5KXt0cnl7Yy5kb1Njcm9sbCgibGVmdCIpfWNhdGNoKGEpe3JldHVybiBzZXRUaW1lb3V0KGUsNTApfUkoKSxtLnJlYWR5KCl9fSgpfXJldHVybiBILnByb21pc2UoYil9O3ZhciBLPSJ1bmRlZmluZWQiLEw7Zm9yKEwgaW4gbShrKSlicmVhaztrLm93bkxhc3Q9IjAiIT09TCxrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbShmdW5jdGlvbigpe3ZhciBhLGIsYyxkO2M9eS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZCkpfSksZnVuY3Rpb24oKXt2YXIgYT15LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKG51bGw9PWsuZGVsZXRlRXhwYW5kbyl7ay5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2suZGVsZXRlRXhwYW5kbz0hMX19YT1udWxsfSgpLG0uYWNjZXB0RGF0YT1mdW5jdGlvbihhKXt2YXIgYj1tLm5vRGF0YVsoYS5ub2RlTmFtZSsiICIpLnRvTG93ZXJDYXNlKCldLGM9K2Eubm9kZVR5cGV8fDE7cmV0dXJuIDEhPT1jJiY5IT09Yz8hMTohYnx8YiE9PSEwJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3NpZCIpPT09Yn07dmFyIE09L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxOPS8oW0EtWl0pL2c7ZnVuY3Rpb24gTyhhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE4sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpNLnRlc3QoYyk/bS5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bS5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwfXJldHVybiBjfWZ1bmN0aW9uIFAoYSl7dmFyIGI7Zm9yKGIgaW4gYSlpZigoImRhdGEiIT09Ynx8IW0uaXNFbXB0eU9iamVjdChhW2JdKSkmJiJ0b0pTT04iIT09YilyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBRKGEsYixkLGUpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGYsZyxoPW0uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP20uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoOwppZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWIoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYigpe3JldHVybiExfWZ1bmN0aW9uIGNiKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2IoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYigpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWI6YmIpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmI7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRiKGEpe3ZhciBiPWViLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYj0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmI9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYj1uZXcgUmVnRXhwKCI8KD86IitlYisiKVtcXHMvPl0iLCJpIiksaGI9L15ccysvLGliPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamI9LzwoW1x3Ol0rKS8sa2I9Lzx0Ym9keS9pLGxiPS88fCYjP1x3KzsvLG1iPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmI9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2I9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBiPS9edHJ1ZVwvKC4qKS8scWI9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJiPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2I9ZGIoeSksdGI9c2IuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmIub3B0Z3JvdXA9cmIub3B0aW9uLHJiLnRib2R5PXJiLnRmb290PXJiLmNvbGdyb3VwPXJiLmNhcHRpb249cmIudGhlYWQscmIudGg9cmIudGQ7ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWIoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZiKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdiKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWIoYSl7dmFyIGI9cGIuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YihhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYihhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYihhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGIoYikudGV4dD1hLnRleHQseWIoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYi50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRiLmlubmVySFRNTD1hLm91dGVySFRNTCx0Yi5yZW1vdmVDaGlsZChmPXRiLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YihmKSxoPXViKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmIoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWIoYSksZD1kfHx1YihmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFiKGUsZFtnXSk7ZWxzZSBBYihhLGYpO3JldHVybiBkPXViKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnpiKGQsIWkmJnViKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYihiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYi50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamIuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJiW2ldfHxyYi5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYiwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhiLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2IudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYi50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHViKHAsImlucHV0IiksdmIpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXViKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnpiKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2IudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13Yih0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWIoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6Yih1YihjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHViKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmIsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWIudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2IudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhiLnRlc3QoYSl8fHJiWyhqYi5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGliLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YihiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWIodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5iLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YihpLCJzY3JpcHQiKSx4YiksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWIoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWIpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYi50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWIsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENiLERiPXt9O2Z1bmN0aW9uIEViKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYihhKXt2YXIgYj15LGM9RGJbYV07cmV0dXJuIGN8fChjPUViKGEsYiksIm5vbmUiIT09YyYmY3x8KENiPShDYnx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2JbMF0uY29udGVudFdpbmRvd3x8Q2JbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWIoYSxiKSxDYi5kZXRhY2goKSksRGJbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYj0vXm1hcmdpbi8sSGI9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYixKYixLYj0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCxjJiYoIiIhPT1nfHxtLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bS5zdHlsZShhLGIpKSxIYi50ZXN0KGcpJiZHYi50ZXN0KGIpJiYoZD1oLndpZHRoLGU9aC5taW5XaWR0aCxmPWgubWF4V2lkdGgsaC5taW5XaWR0aD1oLm1heFdpZHRoPWgud2lkdGg9ZyxnPWMud2lkdGgsaC53aWR0aD1kLGgubWluV2lkdGg9ZSxoLm1heFdpZHRoPWYpKSx2b2lkIDA9PT1nP2c6ZysiIn0pOnkuZG9jdW1lbnRFbGVtZW50LmN1cnJlbnRTdHlsZSYmKEliPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sSmI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxJYihhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksSGIudGVzdChnKSYmIUtiLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBMYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXt2YXIgYz1hKCk7aWYobnVsbCE9YylyZXR1cm4gYz92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19IWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZixnLGg7aWYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGIuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGQ9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdLGM9ZCYmZC5zdHlsZSl7Yy5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGsub3BhY2l0eT0iMC41Ij09PWMub3BhY2l0eSxrLmNzc0Zsb2F0PSEhYy5jc3NGbG9hdCxiLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsYi5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGsuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1iLnN0eWxlLmJhY2tncm91bmRDbGlwLGsuYm94U2l6aW5nPSIiPT09Yy5ib3hTaXppbmd8fCIiPT09Yy5Nb3pCb3hTaXppbmd8fCIiPT09Yy5XZWJraXRCb3hTaXppbmcsbS5leHRlbmQoayx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWcmJmkoKSxnfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1mJiZpKCksZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1lJiZpKCksZX0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1oJiZpKCksaH19KTtmdW5jdGlvbiBpKCl7dmFyIGIsYyxkLGk7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSxiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6MSU7dG9wOjElO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlIixlPWY9ITEsaD0hMCxhLmdldENvbXB1dGVkU3R5bGUmJihlPSIxJSIhPT0oYS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCl8fHt9KS50b3AsZj0iNHB4Ij09PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e3dpZHRoOiI0cHgifSkud2lkdGgsaT1iLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgiZGl2IikpLGkuc3R5bGUuY3NzVGV4dD1iLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsaS5zdHlsZS5tYXJnaW5SaWdodD1pLnN0eWxlLndpZHRoPSIwIixiLnN0eWxlLndpZHRoPSIxcHgiLGg9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpfHx7fSkubWFyZ2luUmlnaHQpKSxiLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsaT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGlbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZz0wPT09aVswXS5vZmZzZXRIZWlnaHQsZyYmKGlbMF0uc3R5bGUuZGlzcGxheT0iIixpWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0KSxjLnJlbW92ZUNoaWxkKGQpKX19fSgpLG0uc3dhcD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX07dmFyIE1iPS9hbHBoYVwoW14pXSpcKS9pLE5iPS9vcGFjaXR5XHMqPVxzKihbXildKikvLE9iPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxQYj1uZXcgUmVnRXhwKCJeKCIrUysiKSguKikkIiwiaSIpLFFiPW5ldyBSZWdFeHAoIl4oWystXSk9KCIrUysiKSIsImkiKSxSYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sU2I9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LFRiPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl07ZnVuY3Rpb24gVWIoYSxiKXtpZihiIGluIGEpcmV0dXJuIGI7dmFyIGM9Yi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGQ9YixlPVRiLmxlbmd0aDt3aGlsZShlLS0paWYoYj1UYltlXStjLGIgaW4gYSlyZXR1cm4gYjtyZXR1cm4gZH1mdW5jdGlvbiBWYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1tLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVShkKSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IixGYihkLm5vZGVOYW1lKSkpKTooZT1VKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm0uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm0uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkPVBiLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gWGIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW0uY3NzKGEsYytUW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bS5jc3MoYSwicGFkZGluZyIrVFtmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bS5jc3MoYSwiYm9yZGVyIitUW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBZYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9SWIoYSksZz1rLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPUpiKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksSGIudGVzdChlKSlyZXR1cm4gZTtkPWcmJihrLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrWGIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW0uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9SmIoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOntjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjprLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVViKGksaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSx2b2lkIDA9PT1jKXJldHVybiBnJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShlPWcuZ2V0KGEsITEsZCkpP2U6aVtiXTtpZihmPXR5cGVvZiBjLCJzdHJpbmciPT09ZiYmKGU9UWIuZXhlYyhjKSkmJihjPShlWzFdKzEpKmVbMl0rcGFyc2VGbG9hdChtLmNzcyhhLGIpKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiIT09Znx8bS5jc3NOdW1iZXJbaF18fChjKz0icHgiKSxrLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bS5jYW1lbENhc2UoYik7cmV0dXJuIGI9bS5jc3NQcm9wc1toXXx8KG0uY3NzUHJvcHNbaF09VWIoYS5zdHlsZSxoKSksZz1tLmNzc0hvb2tzW2JdfHxtLmNzc0hvb2tzW2hdLGcmJiJnZXQiaW4gZyYmKGY9Zy5nZXQoYSwhMCxjKSksdm9pZCAwPT09ZiYmKGY9SmIoYSxiLGQpKSwibm9ybWFsIj09PWYmJmIgaW4gU2ImJihmPVNiW2JdKSwiIj09PWN8fGM/KGU9cGFyc2VGbG9hdChmKSxjPT09ITB8fG0uaXNOdW1lcmljKGUpP2V8fDA6Zik6Zn19KSxtLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYz9PYi50ZXN0KG0uY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRoP20uc3dhcChhLFJiLGZ1bmN0aW9uKCl7cmV0dXJuIFliKGEsYixkKX0pOlliKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmSWIoYSk7cmV0dXJuIFdiKGEsYyxkP1hiKGEsYixkLGsuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1tLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxrLm9wYWNpdHl8fChtLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBOYi50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bS5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW0udHJpbShmLnJlcGxhY2UoTWIsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9TWIudGVzdChmKT9mLnJlcGxhY2UoTWIsZSk6ZisiICIrZSl9fSksbS5jc3NIb29rcy5tYXJnaW5SaWdodD1MYihrLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9tLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sSmIsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG0uZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT17fSxmPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+ZDtkKyspZVthK1RbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3JldHVybiBlfX0sR2IudGVzdChhKXx8KG0uY3NzSG9va3NbYStiXS5zZXQ9V2IpfSksbS5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBWKHRoaXMsZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj17fSxnPTA7aWYobS5pc0FycmF5KGIpKXtmb3IoZD1JYihhKSxlPWIubGVuZ3RoO2U+ZztnKyspZltiW2ddXT1tLmNzcyhhLGJbZ10sITEsZCk7cmV0dXJuIGZ9cmV0dXJuIHZvaWQgMCE9PWM/bS5zdHlsZShhLGIsYyk6bS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNob3c6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gVmIodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhP2E/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7VSh0aGlzKT9tKHRoaXMpLnNob3coKTptKHRoaXMpLmhpZGUoKX0pfX0pO2Z1bmN0aW9uIFpiKGEsYixjLGQsZSl7cmV0dXJuIG5ldyBaYi5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfW0uVHdlZW49WmIsWmIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpaYixpbml0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt0aGlzLmVsZW09YSx0aGlzLnByb3A9Yyx0aGlzLmVhc2luZz1lfHwic3dpbmciLHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobS5jc3NOdW1iZXJbY10/IiI6InB4IikKfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT1aYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ/YS5nZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9WmIucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMucG9zPWI9dGhpcy5vcHRpb25zLmR1cmF0aW9uP20uZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOmEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmIucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmIucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVpiLnByb3RvdHlwZSxaYi5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFpiLnByb3BIb29rcy5zY3JvbGxUb3A9WmIucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYi5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRiLF9iLGFjPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYz1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2M9L3F1ZXVlSG9va3MkLyxkYz1baWNdLGVjPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJjLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJjLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYygpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGI9dm9pZCAwfSksJGI9bS5ub3coKX1mdW5jdGlvbiBnYyhhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYyhhLGIsYyl7Zm9yKHZhciBkLGU9KGVjW2JdfHxbXSkuY29uY2F0KGVjWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGljKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmIoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmIoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYy5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYihhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYyhxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpjKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2MoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGMubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGJ8fGZjKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYnx8ZmMoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpjKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kY1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGMsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYyx7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlY1tjXT1lY1tjXXx8W10sZWNbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYy51bnNoaWZ0KGEpOmRjLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtjKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2MudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2MoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdjKCJzaG93Iiksc2xpZGVVcDpnYygiaGlkZSIpLHNsaWRlVG9nZ2xlOmdjKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGI9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYj12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYnx8KF9iPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2IpLF9iPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYz0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGMsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYyxuYyxvYz1tLmV4cHIuYXR0ckhhbmRsZSxwYz0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFjPWsuZ2V0U2V0QXR0cmlidXRlLHJjPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25jOm1jKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYyYmcWN8fCFwYy50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFjP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmM9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYyYmcWN8fCFwYy50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYyYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2NbYl18fG0uZmluZC5hdHRyO29jW2JdPXJjJiZxY3x8IXBjLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9jW2JdLG9jW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvY1tiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmMmJnFjfHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1jJiZtYy5zZXQoYSxiLGMpfX0pLHFjfHwobWM9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYy5pZD1vYy5uYW1lPW9jLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWMuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWMuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYz0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yz0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2MudGVzdChhLm5vZGVOYW1lKXx8dGMudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWM9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHVjLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWMsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZjPW0ubm93KCksd2M9L1w/Lyx4Yz0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YyxmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHljLHpjLEFjPS8jLiokLyxCYz0vKFs/Jl0pXz1bXiZdKi8sQ2M9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYz0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYz0vXig/OkdFVHxIRUFEKSQvLEZjPS9eXC9cLy8sR2M9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGM9e30sSWM9e30sSmM9IiovIi5jb25jYXQoIioiKTt0cnl7emM9bG9jYXRpb24uaHJlZn1jYXRjaChLYyl7emM9eS5jcmVhdGVFbGVtZW50KCJhIiksemMuaHJlZj0iIix6Yz16Yy5ocmVmfXljPUdjLmV4ZWMoemMudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExjKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWMoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWM7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYyhhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2MoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGMoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emMsdHlwZToiR0VUIixpc0xvY2FsOkRjLnRlc3QoeWNbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05jKE5jKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5jKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxjKEhjKSxhamF4VHJhbnNwb3J0OkxjKEljKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNjLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpjKSsiIikucmVwbGFjZShBYywiIikucmVwbGFjZShGYyx5Y1sxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdjLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWNbMV0mJmNbMl09PT15Y1syXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWNbM118fCgiaHR0cDoiPT09eWNbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWMoSGMsayxiLHYpLDI9PT10KXJldHVybiB2O2g9ay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWMudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdjLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJjLnRlc3QoZSk/ZS5yZXBsYWNlKEJjLCIkMV89Iit2YysrKTplKyh3Yy50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmMrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0pjKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYyhJYyxrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9jKGssdixjKSksdT1QYyhrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7bS5mbltiXT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5vbihiLGEpfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYz0vJTIwL2csUmM9L1xbXF0kLyxTYz0vXHI/XG4vZyxUYz0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWM9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZjKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJjLnRlc3QoYSk/ZChhLGUpOlZjKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYyhhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZjKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFjLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYy50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGMudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYywiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2MsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmMoKXx8JGMoKX06WmM7dmFyIFdjPTAsWGM9e30sWWM9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5BY3RpdmVYT2JqZWN0JiZtKGEpLm9uKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhjKVhjW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYyYmIndpdGhDcmVkZW50aWFscyJpbiBZYyxZYz1rLmFqYXg9ISFZYyxZYyYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYztpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhjW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGNbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmMoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGMoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2M9W10sYWQ9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2MucG9wKCl8fG0uZXhwYW5kbysiXyIrdmMrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFkLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWQudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFkLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yy50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2MucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmQ9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiZClyZXR1cm4gYmQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2Q9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGQoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRkKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjZDt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjZH0pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGQoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYihrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYihhLGIpLEhiLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWQ9YS5qUXVlcnksZmQ9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmQpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVkKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOwo="></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjEgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE0IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSkKICovCmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgalF1ZXJ5KXRocm93IG5ldyBFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkiKTsrZnVuY3Rpb24oYSl7dmFyIGI9YS5mbi5qcXVlcnkuc3BsaXQoIiAiKVswXS5zcGxpdCgiLiIpO2lmKGJbMF08MiYmYlsxXTw5fHwxPT1iWzBdJiY5PT1iWzFdJiZiWzJdPDEpdGhyb3cgbmV3IEVycm9yKCJCb290c3RyYXAncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeSB2ZXJzaW9uIDEuOS4xIG9yIGhpZ2hlciIpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvb3RzdHJhcCIpLGI9e1dlYmtpdFRyYW5zaXRpb246IndlYmtpdFRyYW5zaXRpb25FbmQiLE1velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCIsdHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCJ9O2Zvcih2YXIgYyBpbiBiKWlmKHZvaWQgMCE9PWEuc3R5bGVbY10pcmV0dXJue2VuZDpiW2NdfTtyZXR1cm4hMX1hLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGIpe3ZhciBjPSExLGQ9dGhpczthKHRoaXMpLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2M9ITB9KTt2YXIgZT1mdW5jdGlvbigpe2N8fGEoZCkudHJpZ2dlcihhLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfTtyZXR1cm4gc2V0VGltZW91dChlLGIpLHRoaXN9LGEoZnVuY3Rpb24oKXthLnN1cHBvcnQudHJhbnNpdGlvbj1iKCksYS5zdXBwb3J0LnRyYW5zaXRpb24mJihhLmV2ZW50LnNwZWNpYWwuYnNUcmFuc2l0aW9uRW5kPXtiaW5kVHlwZTphLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsZGVsZWdhdGVUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxoYW5kbGU6ZnVuY3Rpb24oYil7cmV0dXJuIGEoYi50YXJnZXQpLmlzKHRoaXMpP2IuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOnZvaWQgMH19KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuYWxlcnQiKTtlfHxjLmRhdGEoImJzLmFsZXJ0IixlPW5ldyBkKHRoaXMpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0uY2FsbChjKX0pfXZhciBjPSdbZGF0YS1kaXNtaXNzPSJhbGVydCJdJyxkPWZ1bmN0aW9uKGIpe2EoYikub24oImNsaWNrIixjLHRoaXMuY2xvc2UpfTtkLlZFUlNJT049IjMuMy4xIixkLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGMoKXtnLmRldGFjaCgpLnRyaWdnZXIoImNsb3NlZC5icy5hbGVydCIpLnJlbW92ZSgpfXZhciBlPWEodGhpcyksZj1lLmF0dHIoImRhdGEtdGFyZ2V0Iik7Znx8KGY9ZS5hdHRyKCJocmVmIiksZj1mJiZmLnJlcGxhY2UoLy4qKD89I1teXHNdKiQpLywiIikpO3ZhciBnPWEoZik7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGcubGVuZ3RofHwoZz1lLmNsb3Nlc3QoIi5hbGVydCIpKSxnLnRyaWdnZXIoYj1hLkV2ZW50KCJjbG9zZS5icy5hbGVydCIpKSxiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwoZy5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZy5oYXNDbGFzcygiZmFkZSIpP2cub25lKCJic1RyYW5zaXRpb25FbmQiLGMpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTik6YygpKX07dmFyIGU9YS5mbi5hbGVydDthLmZuLmFsZXJ0PWIsYS5mbi5hbGVydC5Db25zdHJ1Y3Rvcj1kLGEuZm4uYWxlcnQubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmFsZXJ0PWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmFsZXJ0LmRhdGEtYXBpIixjLGQucHJvdG90eXBlLmNsb3NlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmJ1dHRvbiIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiO2V8fGQuZGF0YSgiYnMuYnV0dG9uIixlPW5ldyBjKHRoaXMsZikpLCJ0b2dnbGUiPT1iP2UudG9nZ2xlKCk6YiYmZS5zZXRTdGF0ZShiKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQpLHRoaXMuaXNMb2FkaW5nPSExfTtjLlZFUlNJT049IjMuMy4xIixjLkRFRkFVTFRTPXtsb2FkaW5nVGV4dDoibG9hZGluZy4uLiJ9LGMucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKGIpe3ZhciBjPSJkaXNhYmxlZCIsZD10aGlzLiRlbGVtZW50LGU9ZC5pcygiaW5wdXQiKT8idmFsIjoiaHRtbCIsZj1kLmRhdGEoKTtiKz0iVGV4dCIsbnVsbD09Zi5yZXNldFRleHQmJmQuZGF0YSgicmVzZXRUZXh0IixkW2VdKCkpLHNldFRpbWVvdXQoYS5wcm94eShmdW5jdGlvbigpe2RbZV0obnVsbD09ZltiXT90aGlzLm9wdGlvbnNbYl06ZltiXSksImxvYWRpbmdUZXh0Ij09Yj8odGhpcy5pc0xvYWRpbmc9ITAsZC5hZGRDbGFzcyhjKS5hdHRyKGMsYykpOnRoaXMuaXNMb2FkaW5nJiYodGhpcy5pc0xvYWRpbmc9ITEsZC5yZW1vdmVDbGFzcyhjKS5yZW1vdmVBdHRyKGMpKX0sdGhpcyksMCl9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3ZhciBhPSEwLGI9dGhpcy4kZWxlbWVudC5jbG9zZXN0KCdbZGF0YS10b2dnbGU9ImJ1dHRvbnMiXScpO2lmKGIubGVuZ3RoKXt2YXIgYz10aGlzLiRlbGVtZW50LmZpbmQoImlucHV0Iik7InJhZGlvIj09Yy5wcm9wKCJ0eXBlIikmJihjLnByb3AoImNoZWNrZWQiKSYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIik/YT0hMTpiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIikpLGEmJmMucHJvcCgiY2hlY2tlZCIsIXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKS50cmlnZ2VyKCJjaGFuZ2UiKX1lbHNlIHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1wcmVzc2VkIiwhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIikpO2EmJnRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLmJ1dHRvbjthLmZuLmJ1dHRvbj1iLGEuZm4uYnV0dG9uLkNvbnN0cnVjdG9yPWMsYS5mbi5idXR0b24ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmJ1dHRvbj1kLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5idXR0b24uZGF0YS1hcGkiLCdbZGF0YS10b2dnbGVePSJidXR0b24iXScsZnVuY3Rpb24oYyl7dmFyIGQ9YShjLnRhcmdldCk7ZC5oYXNDbGFzcygiYnRuIil8fChkPWQuY2xvc2VzdCgiLmJ0biIpKSxiLmNhbGwoZCwidG9nZ2xlIiksYy5wcmV2ZW50RGVmYXVsdCgpfSkub24oImZvY3VzLmJzLmJ1dHRvbi5kYXRhLWFwaSBibHVyLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihiKXthKGIudGFyZ2V0KS5jbG9zZXN0KCIuYnRuIikudG9nZ2xlQ2xhc3MoImZvY3VzIiwvXmZvY3VzKGluKT8kLy50ZXN0KGIudHlwZSkpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5jYXJvdXNlbCIpLGY9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxkLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGc9InN0cmluZyI9PXR5cGVvZiBiP2I6Zi5zbGlkZTtlfHxkLmRhdGEoImJzLmNhcm91c2VsIixlPW5ldyBjKHRoaXMsZikpLCJudW1iZXIiPT10eXBlb2YgYj9lLnRvKGIpOmc/ZVtnXSgpOmYuaW50ZXJ2YWwmJmUucGF1c2UoKS5jeWNsZSgpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy4kaW5kaWNhdG9ycz10aGlzLiRlbGVtZW50LmZpbmQoIi5jYXJvdXNlbC1pbmRpY2F0b3JzIiksdGhpcy5vcHRpb25zPWMsdGhpcy5wYXVzZWQ9dGhpcy5zbGlkaW5nPXRoaXMuaW50ZXJ2YWw9dGhpcy4kYWN0aXZlPXRoaXMuJGl0ZW1zPW51bGwsdGhpcy5vcHRpb25zLmtleWJvYXJkJiZ0aGlzLiRlbGVtZW50Lm9uKCJrZXlkb3duLmJzLmNhcm91c2VsIixhLnByb3h5KHRoaXMua2V5ZG93bix0aGlzKSksImhvdmVyIj09dGhpcy5vcHRpb25zLnBhdXNlJiYhKCJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmdGhpcy4kZWxlbWVudC5vbigibW91c2VlbnRlci5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLnBhdXNlLHRoaXMpKS5vbigibW91c2VsZWF2ZS5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmN5Y2xlLHRoaXMpKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTYwMCxjLkRFRkFVTFRTPXtpbnRlcnZhbDo1ZTMscGF1c2U6ImhvdmVyIix3cmFwOiEwLGtleWJvYXJkOiEwfSxjLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGEpe2lmKCEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGEudGFyZ2V0LnRhZ05hbWUpKXtzd2l0Y2goYS53aGljaCl7Y2FzZSAzNzp0aGlzLnByZXYoKTticmVhaztjYXNlIDM5OnRoaXMubmV4dCgpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufWEucHJldmVudERlZmF1bHQoKX19LGMucHJvdG90eXBlLmN5Y2xlPWZ1bmN0aW9uKGIpe3JldHVybiBifHwodGhpcy5wYXVzZWQ9ITEpLHRoaXMuaW50ZXJ2YWwmJmNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCksdGhpcy5vcHRpb25zLmludGVydmFsJiYhdGhpcy5wYXVzZWQmJih0aGlzLmludGVydmFsPXNldEludGVydmFsKGEucHJveHkodGhpcy5uZXh0LHRoaXMpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCkpLHRoaXN9LGMucHJvdG90eXBlLmdldEl0ZW1JbmRleD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy4kaXRlbXM9YS5wYXJlbnQoKS5jaGlsZHJlbigiLml0ZW0iKSx0aGlzLiRpdGVtcy5pbmRleChhfHx0aGlzLiRhY3RpdmUpfSxjLnByb3RvdHlwZS5nZXRJdGVtRm9yRGlyZWN0aW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9InByZXYiPT1hPy0xOjEsZD10aGlzLmdldEl0ZW1JbmRleChiKSxlPShkK2MpJXRoaXMuJGl0ZW1zLmxlbmd0aDtyZXR1cm4gdGhpcy4kaXRlbXMuZXEoZSl9LGMucHJvdG90eXBlLnRvPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz10aGlzLmdldEl0ZW1JbmRleCh0aGlzLiRhY3RpdmU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSk7cmV0dXJuIGE+dGhpcy4kaXRlbXMubGVuZ3RoLTF8fDA+YT92b2lkIDA6dGhpcy5zbGlkaW5nP3RoaXMuJGVsZW1lbnQub25lKCJzbGlkLmJzLmNhcm91c2VsIixmdW5jdGlvbigpe2IudG8oYSl9KTpjPT1hP3RoaXMucGF1c2UoKS5jeWNsZSgpOnRoaXMuc2xpZGUoYT5jPyJuZXh0IjoicHJldiIsdGhpcy4kaXRlbXMuZXEoYSkpfSxjLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSEwKSx0aGlzLiRlbGVtZW50LmZpbmQoIi5uZXh0LCAucHJldiIpLmxlbmd0aCYmYS5zdXBwb3J0LnRyYW5zaXRpb24mJih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSx0aGlzLmN5Y2xlKCEwKSksdGhpcy5pbnRlcnZhbD1jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXN9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGlkaW5nP3ZvaWQgMDp0aGlzLnNsaWRlKCJuZXh0Iil9LGMucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbGlkaW5nP3ZvaWQgMDp0aGlzLnNsaWRlKCJwcmV2Iil9LGMucHJvdG90eXBlLnNsaWRlPWZ1bmN0aW9uKGIsZCl7dmFyIGU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSxmPWR8fHRoaXMuZ2V0SXRlbUZvckRpcmVjdGlvbihiLGUpLGc9dGhpcy5pbnRlcnZhbCxoPSJuZXh0Ij09Yj8ibGVmdCI6InJpZ2h0IixpPSJuZXh0Ij09Yj8iZmlyc3QiOiJsYXN0IixqPXRoaXM7aWYoIWYubGVuZ3RoKXtpZighdGhpcy5vcHRpb25zLndyYXApcmV0dXJuO2Y9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbSIpW2ldKCl9aWYoZi5oYXNDbGFzcygiYWN0aXZlIikpcmV0dXJuIHRoaXMuc2xpZGluZz0hMTt2YXIgaz1mWzBdLGw9YS5FdmVudCgic2xpZGUuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmssZGlyZWN0aW9uOmh9KTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIobCksIWwuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKHRoaXMuc2xpZGluZz0hMCxnJiZ0aGlzLnBhdXNlKCksdGhpcy4kaW5kaWNhdG9ycy5sZW5ndGgpe3RoaXMuJGluZGljYXRvcnMuZmluZCgiLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTt2YXIgbT1hKHRoaXMuJGluZGljYXRvcnMuY2hpbGRyZW4oKVt0aGlzLmdldEl0ZW1JbmRleChmKV0pO20mJm0uYWRkQ2xhc3MoImFjdGl2ZSIpfXZhciBuPWEuRXZlbnQoInNsaWQuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmssZGlyZWN0aW9uOmh9KTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoInNsaWRlIik/KGYuYWRkQ2xhc3MoYiksZlswXS5vZmZzZXRXaWR0aCxlLmFkZENsYXNzKGgpLGYuYWRkQ2xhc3MoaCksZS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKFtiLGhdLmpvaW4oIiAiKSkuYWRkQ2xhc3MoImFjdGl2ZSIpLGUucmVtb3ZlQ2xhc3MoWyJhY3RpdmUiLGhdLmpvaW4oIiAiKSksai5zbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtqLiRlbGVtZW50LnRyaWdnZXIobil9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKSk6KGUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLGYuYWRkQ2xhc3MoImFjdGl2ZSIpLHRoaXMuc2xpZGluZz0hMSx0aGlzLiRlbGVtZW50LnRyaWdnZXIobikpLGcmJnRoaXMuY3ljbGUoKSx0aGlzfX07dmFyIGQ9YS5mbi5jYXJvdXNlbDthLmZuLmNhcm91c2VsPWIsYS5mbi5jYXJvdXNlbC5Db25zdHJ1Y3Rvcj1jLGEuZm4uY2Fyb3VzZWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNhcm91c2VsPWQsdGhpc307dmFyIGU9ZnVuY3Rpb24oYyl7dmFyIGQsZT1hKHRoaXMpLGY9YShlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fChkPWUuYXR0cigiaHJlZiIpKSYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKTtpZihmLmhhc0NsYXNzKCJjYXJvdXNlbCIpKXt2YXIgZz1hLmV4dGVuZCh7fSxmLmRhdGEoKSxlLmRhdGEoKSksaD1lLmF0dHIoImRhdGEtc2xpZGUtdG8iKTtoJiYoZy5pbnRlcnZhbD0hMSksYi5jYWxsKGYsZyksaCYmZi5kYXRhKCJicy5jYXJvdXNlbCIpLnRvKGgpLGMucHJldmVudERlZmF1bHQoKX19O2EoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlXSIsZSkub24oImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpIiwiW2RhdGEtc2xpZGUtdG9dIixlKSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtcmlkZT0iY2Fyb3VzZWwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpO2IuY2FsbChjLGMuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjLGQ9Yi5hdHRyKCJkYXRhLXRhcmdldCIpfHwoYz1iLmF0dHIoImhyZWYiKSkmJmMucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKTtyZXR1cm4gYShkKX1mdW5jdGlvbiBjKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5jb2xsYXBzZSIpLGY9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpOyFlJiZmLnRvZ2dsZSYmInNob3ciPT1iJiYoZi50b2dnbGU9ITEpLGV8fGMuZGF0YSgiYnMuY29sbGFwc2UiLGU9bmV3IGQodGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgZD1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjKSx0aGlzLiR0cmlnZ2VyPWEodGhpcy5vcHRpb25zLnRyaWdnZXIpLmZpbHRlcignW2hyZWY9IiMnK2IuaWQrJyJdLCBbZGF0YS10YXJnZXQ9IiMnK2IuaWQrJyJdJyksdGhpcy50cmFuc2l0aW9uaW5nPW51bGwsdGhpcy5vcHRpb25zLnBhcmVudD90aGlzLiRwYXJlbnQ9dGhpcy5nZXRQYXJlbnQoKTp0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLiRlbGVtZW50LHRoaXMuJHRyaWdnZXIpLHRoaXMub3B0aW9ucy50b2dnbGUmJnRoaXMudG9nZ2xlKCl9O2QuVkVSU0lPTj0iMy4zLjEiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0zNTAsZC5ERUZBVUxUUz17dG9nZ2xlOiEwLHRyaWdnZXI6J1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXSd9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmZpbmQoIj4gLnBhbmVsIikuY2hpbGRyZW4oIi5pbiwgLmNvbGxhcHNpbmciKTtpZighKGUmJmUubGVuZ3RoJiYoYj1lLmRhdGEoImJzLmNvbGxhcHNlIiksYiYmYi50cmFuc2l0aW9uaW5nKSkpe3ZhciBmPWEuRXZlbnQoInNob3cuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoZiksIWYuaXNEZWZhdWx0UHJldmVudGVkKCkpe2UmJmUubGVuZ3RoJiYoYy5jYWxsKGUsImhpZGUiKSxifHxlLmRhdGEoImJzLmNvbGxhcHNlIixudWxsKSk7dmFyIGc9dGhpcy5kaW1lbnNpb24oKTt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzZSIpLmFkZENsYXNzKCJjb2xsYXBzaW5nIilbZ10oMCkuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMuJHRyaWdnZXIucmVtb3ZlQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgaD1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UgaW4iKVtnXSgiIiksdGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJzaG93bi5icy5jb2xsYXBzZSIpfTtpZighYS5zdXBwb3J0LnRyYW5zaXRpb24pcmV0dXJuIGguY2FsbCh0aGlzKTt2YXIgaT1hLmNhbWVsQ2FzZShbInNjcm9sbCIsZ10uam9pbigiLSIpKTt0aGlzLiRlbGVtZW50Lm9uZSgiYnNUcmFuc2l0aW9uRW5kIixhLnByb3h5KGgsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTilbZ10odGhpcy4kZWxlbWVudFswXVtpXSl9fX19LGQucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oKXtpZighdGhpcy50cmFuc2l0aW9uaW5nJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYj1hLkV2ZW50KCJoaWRlLmJzLmNvbGxhcHNlIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLCFiLmlzRGVmYXVsdFByZXZlbnRlZCgpKXt2YXIgYz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnRbY10odGhpcy4kZWxlbWVudFtjXSgpKVswXS5vZmZzZXRIZWlnaHQsdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiY29sbGFwc2luZyIpLnJlbW92ZUNsYXNzKCJjb2xsYXBzZSBpbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLiR0cmlnZ2VyLmFkZENsYXNzKCJjb2xsYXBzZWQiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSksdGhpcy50cmFuc2l0aW9uaW5nPTE7dmFyIGU9ZnVuY3Rpb24oKXt0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzaW5nIikuYWRkQ2xhc3MoImNvbGxhcHNlIikudHJpZ2dlcigiaGlkZGVuLmJzLmNvbGxhcHNlIil9O3JldHVybiBhLnN1cHBvcnQudHJhbnNpdGlvbj92b2lkIHRoaXMuJGVsZW1lbnRbY10oMCkub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoZSx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTplLmNhbGwodGhpcyl9fX0sZC5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dGhpc1t0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpPyJoaWRlIjoic2hvdyJdKCl9LGQucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbigpe3JldHVybiBhKHRoaXMub3B0aW9ucy5wYXJlbnQpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXBhcmVudD0iJyt0aGlzLm9wdGlvbnMucGFyZW50KyciXScpLmVhY2goYS5wcm94eShmdW5jdGlvbihjLGQpe3ZhciBlPWEoZCk7dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MoYihlKSxlKX0sdGhpcykpLmVuZCgpfSxkLnByb3RvdHlwZS5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3M9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmhhc0NsYXNzKCJpbiIpO2EuYXR0cigiYXJpYS1leHBhbmRlZCIsYyksYi50b2dnbGVDbGFzcygiY29sbGFwc2VkIiwhYykuYXR0cigiYXJpYS1leHBhbmRlZCIsYyl9O3ZhciBlPWEuZm4uY29sbGFwc2U7YS5mbi5jb2xsYXBzZT1jLGEuZm4uY29sbGFwc2UuQ29uc3RydWN0b3I9ZCxhLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jb2xsYXBzZT1lLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jb2xsYXBzZS5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXScsZnVuY3Rpb24oZCl7dmFyIGU9YSh0aGlzKTtlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fGQucHJldmVudERlZmF1bHQoKTt2YXIgZj1iKGUpLGc9Zi5kYXRhKCJicy5jb2xsYXBzZSIpLGg9Zz8idG9nZ2xlIjphLmV4dGVuZCh7fSxlLmRhdGEoKSx7dHJpZ2dlcjp0aGlzfSk7Yy5jYWxsKGYsaCl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7YiYmMz09PWIud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1jKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoZS50cmlnZ2VyKGI9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSl9KSl9ZnVuY3Rpb24gYyhiKXt2YXIgYz1iLmF0dHIoImRhdGEtdGFyZ2V0Iik7Y3x8KGM9Yi5hdHRyKCJocmVmIiksYz1jJiYvI1tBLVphLXpdLy50ZXN0KGMpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKiQpLywiIikpO3ZhciBkPWMmJmEoYyk7cmV0dXJuIGQmJmQubGVuZ3RoP2Q6Yi5wYXJlbnQoKX1mdW5jdGlvbiBkKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5kYXRhKCJicy5kcm9wZG93biIpO2R8fGMuZGF0YSgiYnMuZHJvcGRvd24iLGQ9bmV3IGcodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZFtiXS5jYWxsKGMpfSl9dmFyIGU9Ii5kcm9wZG93bi1iYWNrZHJvcCIsZj0nW2RhdGEtdG9nZ2xlPSJkcm9wZG93biJdJyxnPWZ1bmN0aW9uKGIpe2EoYikub24oImNsaWNrLmJzLmRyb3Bkb3duIix0aGlzLnRvZ2dsZSl9O2cuVkVSU0lPTj0iMy4zLjEiLGcucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2lmKCFlLmlzKCIuZGlzYWJsZWQsIDpkaXNhYmxlZCIpKXt2YXIgZj1jKGUpLGc9Zi5oYXNDbGFzcygib3BlbiIpO2lmKGIoKSwhZyl7Im9udG91Y2hzdGFydCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJiFmLmNsb3Nlc3QoIi5uYXZiYXItbmF2IikubGVuZ3RoJiZhKCc8ZGl2IGNsYXNzPSJkcm9wZG93bi1iYWNrZHJvcCIvPicpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYik7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGIpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGIud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChiLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YyhkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWIud2hpY2h8fGcmJjI3PT1iLndoaWNoKXJldHVybiAyNz09Yi53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXZpZGVyKTp2aXNpYmxlIGEiLGk9ZS5maW5kKCdbcm9sZT0ibWVudSJdJytoKycsIFtyb2xlPSJsaXN0Ym94Il0nK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGIudGFyZ2V0KTszOD09Yi53aGljaCYmaj4wJiZqLS0sNDA9PWIud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYikub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsJ1tyb2xlPSJtZW51Il0nLGcucHJvdG90eXBlLmtleWRvd24pLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwnW3JvbGU9Imxpc3Rib3giXScsZy5wcm90b3R5cGUua2V5ZG93bil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIsZCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEodGhpcyksZj1lLmRhdGEoImJzLm1vZGFsIiksZz1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGUuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYik7Znx8ZS5kYXRhKCJicy5tb2RhbCIsZj1uZXcgYyh0aGlzLGcpKSwic3RyaW5nIj09dHlwZW9mIGI/ZltiXShkKTpnLnNob3cmJmYuc2hvdyhkKX0pfXZhciBjPWZ1bmN0aW9uKGIsYyl7dGhpcy5vcHRpb25zPWMsdGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRiYWNrZHJvcD10aGlzLmlzU2hvd249bnVsbCx0aGlzLnNjcm9sbGJhcldpZHRoPTAsdGhpcy5vcHRpb25zLnJlbW90ZSYmdGhpcy4kZWxlbWVudC5maW5kKCIubW9kYWwtY29udGVudCIpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSxhLnByb3h5KGZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJsb2FkZWQuYnMubW9kYWwiKX0sdGhpcykpfTtjLlZFUlNJT049IjMuMy4xIixjLlRSQU5TSVRJT05fRFVSQVRJT049MzAwLGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsYy5ERUZBVUxUUz17YmFja2Ryb3A6ITAsa2V5Ym9hcmQ6ITAsc2hvdzohMH0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlzU2hvd24/dGhpcy5oaWRlKCk6dGhpcy5zaG93KGEpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT1hLkV2ZW50KCJzaG93LmJzLm1vZGFsIix7cmVsYXRlZFRhcmdldDpifSk7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpLHRoaXMuaXNTaG93bnx8ZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KHRoaXMuaXNTaG93bj0hMCx0aGlzLmNoZWNrU2Nyb2xsYmFyKCksdGhpcy5zZXRTY3JvbGxiYXIoKSx0aGlzLiRib2R5LmFkZENsYXNzKCJtb2RhbC1vcGVuIiksdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuJGVsZW1lbnQub24oImNsaWNrLmRpc21pc3MuYnMubW9kYWwiLCdbZGF0YS1kaXNtaXNzPSJtb2RhbCJdJyxhLnByb3h5KHRoaXMuaGlkZSx0aGlzKSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQub3B0aW9ucy5iYWNrZHJvcCYmZC5hZGp1c3RCYWNrZHJvcCgpLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLmF0dHIoImFyaWEtaGlkZGVuIiwhMSksZC5lbmZvcmNlRm9jdXMoKTt2YXIgZj1hLkV2ZW50KCJzaG93bi5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO2U/ZC4kZWxlbWVudC5maW5kKCIubW9kYWwtZGlhbG9nIikub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmQuJGVsZW1lbnQudHJpZ2dlcigiZm9jdXMiKS50cmlnZ2VyKGYpfSkpfSxjLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKGIpe2ImJmIucHJldmVudERlZmF1bHQoKSxiPWEuRXZlbnQoImhpZGUuYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksdGhpcy5pc1Nob3duJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKHRoaXMuaXNTaG93bj0hMSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksYShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIiksdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiaW4iKS5hdHRyKCJhcmlhLWhpZGRlbiIsITApLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eSh0aGlzLmhpZGVNb2RhbCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTp0aGlzLmhpZGVNb2RhbCgpKX0sYy5wcm90b3R5cGUuZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7YShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIikub24oImZvY3VzaW4uYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7dGhpcy4kZWxlbWVudFswXT09PWEudGFyZ2V0fHx0aGlzLiRlbGVtZW50LmhhcyhhLnRhcmdldCkubGVuZ3RofHx0aGlzLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIil9LHRoaXMpKX0sYy5wcm90b3R5cGUuZXNjYXBlPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMua2V5Ym9hcmQ/dGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpezI3PT1hLndoaWNoJiZ0aGlzLmhpZGUoKX0sdGhpcykpOnRoaXMuaXNTaG93bnx8dGhpcy4kZWxlbWVudC5vZmYoImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24/YSh3aW5kb3cpLm9uKCJyZXNpemUuYnMubW9kYWwiLGEucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsdGhpcykpOmEod2luZG93KS5vZmYoInJlc2l6ZS5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuJGVsZW1lbnQuaGlkZSgpLHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24oKXthLiRib2R5LnJlbW92ZUNsYXNzKCJtb2RhbC1vcGVuIiksYS5yZXNldEFkanVzdG1lbnRzKCksYS5yZXNldFNjcm9sbGJhcigpLGEuJGVsZW1lbnQudHJpZ2dlcigiaGlkZGVuLmJzLm1vZGFsIil9KX0sYy5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLiRiYWNrZHJvcCYmdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCksdGhpcy4kYmFja2Ryb3A9bnVsbH0sYy5wcm90b3R5cGUuYmFja2Ryb3A9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT8iZmFkZSI6IiI7aWYodGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMuYmFja2Ryb3Ape3ZhciBmPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZlO2lmKHRoaXMuJGJhY2tkcm9wPWEoJzxkaXYgY2xhc3M9Im1vZGFsLWJhY2tkcm9wICcrZSsnIiAvPicpLnByZXBlbmRUbyh0aGlzLiRlbGVtZW50KS5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXthLnRhcmdldD09PWEuY3VycmVudFRhcmdldCYmKCJzdGF0aWMiPT10aGlzLm9wdGlvbnMuYmFja2Ryb3A/dGhpcy4kZWxlbWVudFswXS5mb2N1cy5jYWxsKHRoaXMuJGVsZW1lbnRbMF0pOnRoaXMuaGlkZS5jYWxsKHRoaXMpKX0sdGhpcykpLGYmJnRoaXMuJGJhY2tkcm9wWzBdLm9mZnNldFdpZHRoLHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCJpbiIpLCFiKXJldHVybjtmP3RoaXMuJGJhY2tkcm9wLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixiKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmIoKX1lbHNlIGlmKCF0aGlzLmlzU2hvd24mJnRoaXMuJGJhY2tkcm9wKXt0aGlzLiRiYWNrZHJvcC5yZW1vdmVDbGFzcygiaW4iKTt2YXIgZz1mdW5jdGlvbigpe2QucmVtb3ZlQmFja2Ryb3AoKSxiJiZiKCl9O2Euc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGcpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6ZygpfWVsc2UgYiYmYigpfSxjLnByb3RvdHlwZS5oYW5kbGVVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYmFja2Ryb3AmJnRoaXMuYWRqdXN0QmFja2Ryb3AoKSx0aGlzLmFkanVzdERpYWxvZygpfSxjLnByb3RvdHlwZS5hZGp1c3RCYWNrZHJvcD1mdW5jdGlvbigpe3RoaXMuJGJhY2tkcm9wLmNzcygiaGVpZ2h0IiwwKS5jc3MoImhlaWdodCIsdGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQpfSxjLnByb3RvdHlwZS5hZGp1c3REaWFsb2c9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDohdGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmYT90aGlzLnNjcm9sbGJhcldpZHRoOiIiLHBhZGRpbmdSaWdodDp0aGlzLmJvZHlJc092ZXJmbG93aW5nJiYhYT90aGlzLnNjcm9sbGJhcldpZHRoOiIifSl9LGMucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHM9ZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LmNzcyh7cGFkZGluZ0xlZnQ6IiIscGFkZGluZ1JpZ2h0OiIifSl9LGMucHJvdG90eXBlLmNoZWNrU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dGhpcy5ib2R5SXNPdmVyZmxvd2luZz1kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodD5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0LHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJnRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IixhK3RoaXMuc2Nyb2xsYmFyV2lkdGgpfSxjLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3RoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IiwiIil9LGMucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0ibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUiLHRoaXMuJGJvZHkuYXBwZW5kKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aDtyZXR1cm4gdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChhKSxifTt2YXIgZD1hLmZuLm1vZGFsO2EuZm4ubW9kYWw9YixhLmZuLm1vZGFsLkNvbnN0cnVjdG9yPWMsYS5mbi5tb2RhbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ubW9kYWw9ZCx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMubW9kYWwuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9Im1vZGFsIl0nLGZ1bmN0aW9uKGMpe3ZhciBkPWEodGhpcyksZT1kLmF0dHIoImhyZWYiKSxmPWEoZC5hdHRyKCJkYXRhLXRhcmdldCIpfHxlJiZlLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIikpLGc9Zi5kYXRhKCJicy5tb2RhbCIpPyJ0b2dnbGUiOmEuZXh0ZW5kKHtyZW1vdGU6IS8jLy50ZXN0KGUpJiZlfSxmLmRhdGEoKSxkLmRhdGEoKSk7ZC5pcygiYSIpJiZjLnByZXZlbnREZWZhdWx0KCksZi5vbmUoInNob3cuYnMubW9kYWwiLGZ1bmN0aW9uKGEpe2EuaXNEZWZhdWx0UHJldmVudGVkKCl8fGYub25lKCJoaWRkZW4uYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC5pcygiOnZpc2libGUiKSYmZC50cmlnZ2VyKCJmb2N1cyIpfSl9KSxiLmNhbGwoZixnLHRoaXMpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50b29sdGlwIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmIsZz1mJiZmLnNlbGVjdG9yOyhlfHwiZGVzdHJveSIhPWIpJiYoZz8oZXx8ZC5kYXRhKCJicy50b29sdGlwIixlPXt9KSxlW2ddfHwoZVtnXT1uZXcgYyh0aGlzLGYpKSk6ZXx8ZC5kYXRhKCJicy50b29sdGlwIixlPW5ldyBjKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpKX0pfXZhciBjPWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPXRoaXMub3B0aW9ucz10aGlzLmVuYWJsZWQ9dGhpcy50aW1lb3V0PXRoaXMuaG92ZXJTdGF0ZT10aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy4xIixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXt0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKHRoaXMub3B0aW9ucy52aWV3cG9ydC5zZWxlY3Rvcnx8dGhpcy5vcHRpb25zLnZpZXdwb3J0KTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGMmJmMuJHRpcCYmYy4kdGlwLmlzKCI6dmlzaWJsZSIpP3ZvaWQoYy5ob3ZlclN0YXRlPSJpbiIpOihjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9ImluIixjLm9wdGlvbnMuZGVsYXkmJmMub3B0aW9ucy5kZWxheS5zaG93P3ZvaWQoYy50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXsiaW4iPT1jLmhvdmVyU3RhdGUmJmMuc2hvdygpfSxjLm9wdGlvbnMuZGVsYXkuc2hvdykpOmMuc2hvdygpKX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oKXt2YXIgYj1hLkV2ZW50KCJzaG93LmJzLiIrdGhpcy50eXBlKTtpZih0aGlzLmhhc0NvbnRlbnQoKSYmdGhpcy5lbmFibGVkKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoYik7dmFyIGQ9YS5jb250YWlucyh0aGlzLiRlbGVtZW50WzBdLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuJGVsZW1lbnRbMF0pO2lmKGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fCFkKXJldHVybjt2YXIgZT10aGlzLGY9dGhpcy50aXAoKSxnPXRoaXMuZ2V0VUlEKHRoaXMudHlwZSk7dGhpcy5zZXRDb250ZW50KCksZi5hdHRyKCJpZCIsZyksdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5IixnKSx0aGlzLm9wdGlvbnMuYW5pbWF0aW9uJiZmLmFkZENsYXNzKCJmYWRlIik7dmFyIGg9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQ/dGhpcy5vcHRpb25zLnBsYWNlbWVudC5jYWxsKHRoaXMsZlswXSx0aGlzLiRlbGVtZW50WzBdKTp0aGlzLm9wdGlvbnMucGxhY2VtZW50LGk9L1xzP2F1dG8/XHM/L2ksaj1pLnRlc3QoaCk7aiYmKGg9aC5yZXBsYWNlKGksIiIpfHwidG9wIiksZi5kZXRhY2goKS5jc3Moe3RvcDowLGxlZnQ6MCxkaXNwbGF5OiJibG9jayJ9KS5hZGRDbGFzcyhoKS5kYXRhKCJicy4iK3RoaXMudHlwZSx0aGlzKSx0aGlzLm9wdGlvbnMuY29udGFpbmVyP2YuYXBwZW5kVG8odGhpcy5vcHRpb25zLmNvbnRhaW5lcik6Zi5pbnNlcnRBZnRlcih0aGlzLiRlbGVtZW50KTt2YXIgaz10aGlzLmdldFBvc2l0aW9uKCksbD1mWzBdLm9mZnNldFdpZHRoLG09ZlswXS5vZmZzZXRIZWlnaHQ7aWYoail7dmFyIG49aCxvPXRoaXMub3B0aW9ucy5jb250YWluZXI/YSh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTp0aGlzLiRlbGVtZW50LnBhcmVudCgpLHA9dGhpcy5nZXRQb3NpdGlvbihvKTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPnAuYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPHAudG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5wLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPHAubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcT10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChxLGgpO3ZhciByPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscikuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpyKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wPWIudG9wK2csYi5sZWZ0PWIubGVmdCtoLGEub2Zmc2V0LnNldE9mZnNldChkWzBdLGEuZXh0ZW5kKHt1c2luZzpmdW5jdGlvbihhKXtkLmNzcyh7dG9wOk1hdGgucm91bmQoYS50b3ApLGxlZnQ6TWF0aC5yb3VuZChhLmxlZnQpfSl9fSxiKSwwKSxkLmFkZENsYXNzKCJpbiIpO3ZhciBpPWRbMF0ub2Zmc2V0V2lkdGgsaj1kWzBdLm9mZnNldEhlaWdodDsidG9wIj09YyYmaiE9ZiYmKGIudG9wPWIudG9wK2Ytaik7dmFyIGs9dGhpcy5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGEoYyxiLGksaik7ay5sZWZ0P2IubGVmdCs9ay5sZWZ0OmIudG9wKz1rLnRvcDt2YXIgbD0vdG9wfGJvdHRvbS8udGVzdChjKSxtPWw/MiprLmxlZnQtZStpOjIqay50b3AtZitqLG49bD8ib2Zmc2V0V2lkdGgiOiJvZmZzZXRIZWlnaHQiO2Qub2Zmc2V0KGIpLHRoaXMucmVwbGFjZUFycm93KG0sZFswXVtuXSxsKX0sYy5wcm90b3R5cGUucmVwbGFjZUFycm93PWZ1bmN0aW9uKGEsYixjKXt0aGlzLmFycm93KCkuY3NzKGM/ImxlZnQiOiJ0b3AiLDUwKigxLWEvYikrIiUiKS5jc3MoYz8idG9wIjoibGVmdCIsIiIpfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKTthLmZpbmQoIi50b29sdGlwLWlubmVyIilbdGhpcy5vcHRpb25zLmh0bWw/Imh0bWwiOiJ0ZXh0Il0oYiksYS5yZW1vdmVDbGFzcygiZmFkZSBpbiB0b3AgYm90dG9tIGxlZnQgcmlnaHQiKX0sYy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihiKXtmdW5jdGlvbiBkKCl7ImluIiE9ZS5ob3ZlclN0YXRlJiZmLmRldGFjaCgpLGUuJGVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpLnRyaWdnZXIoImhpZGRlbi5icy4iK2UudHlwZSksYiYmYigpfXZhciBlPXRoaXMsZj10aGlzLnRpcCgpLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZCkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpkKCksdGhpcy5ob3ZlclN0YXRlPW51bGwsdGhpcyl9LGMucHJvdG90eXBlLmZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudDsoYS5hdHRyKCJ0aXRsZSIpfHwic3RyaW5nIiE9dHlwZW9mIGEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpKSYmYS5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIixhLmF0dHIoInRpdGxlIil8fCIiKS5hdHRyKCJ0aXRsZSIsIiIpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKX0sYy5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oYil7Yj1ifHx0aGlzLiRlbGVtZW50O3ZhciBjPWJbMF0sZD0iQk9EWSI9PWMudGFnTmFtZSxlPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bnVsbD09ZS53aWR0aCYmKGU9YS5leHRlbmQoe30sZSx7d2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSkpO3ZhciBmPWQ/e3RvcDowLGxlZnQ6MH06Yi5vZmZzZXQoKSxnPXtzY3JvbGw6ZD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHxkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDpiLnNjcm9sbFRvcCgpfSxoPWQ/e3dpZHRoOmEod2luZG93KS53aWR0aCgpLGhlaWdodDphKHdpbmRvdykuaGVpZ2h0KCl9Om51bGw7cmV0dXJuIGEuZXh0ZW5kKHt9LGUsZyxoLGYpfSxjLnByb3RvdHlwZS5nZXRDYWxjdWxhdGVkT2Zmc2V0PWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiJib3R0b20iPT1hP3t0b3A6Yi50b3ArYi5oZWlnaHQsbGVmdDpiLmxlZnQrYi53aWR0aC8yLWMvMn06InRvcCI9PWE/e3RvcDpiLnRvcC1kLGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJsZWZ0Ij09YT97dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0LWN9Ont0b3A6Yi50b3ArYi5oZWlnaHQvMi1kLzIsbGVmdDpiLmxlZnQrYi53aWR0aH19LGMucHJvdG90eXBlLmdldFZpZXdwb3J0QWRqdXN0ZWREZWx0YT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT17dG9wOjAsbGVmdDowfTtpZighdGhpcy4kdmlld3BvcnQpcmV0dXJuIGU7dmFyIGY9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZ0aGlzLm9wdGlvbnMudmlld3BvcnQucGFkZGluZ3x8MCxnPXRoaXMuZ2V0UG9zaXRpb24odGhpcy4kdmlld3BvcnQpO2lmKC9yaWdodHxsZWZ0Ly50ZXN0KGEpKXt2YXIgaD1iLnRvcC1mLWcuc2Nyb2xsLGk9Yi50b3ArZi1nLnNjcm9sbCtkO2g8Zy50b3A/ZS50b3A9Zy50b3AtaDppPmcudG9wK2cuaGVpZ2h0JiYoZS50b3A9Zy50b3ArZy5oZWlnaHQtaSl9ZWxzZXt2YXIgaj1iLmxlZnQtZixrPWIubGVmdCtmK2M7ajxnLmxlZnQ/ZS5sZWZ0PWcubGVmdC1qOms+Zy53aWR0aCYmKGUubGVmdD1nLmxlZnQrZy53aWR0aC1rKX1yZXR1cm4gZX0sYy5wcm90b3R5cGUuZ2V0VGl0bGU9ZnVuY3Rpb24oKXt2YXIgYSxiPXRoaXMuJGVsZW1lbnQsYz10aGlzLm9wdGlvbnM7cmV0dXJuIGE9Yi5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYy50aXRsZT9jLnRpdGxlLmNhbGwoYlswXSk6Yy50aXRsZSl9LGMucHJvdG90eXBlLmdldFVJRD1mdW5jdGlvbihhKXtkbyBhKz1+figxZTYqTWF0aC5yYW5kb20oKSk7d2hpbGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpO3JldHVybiBhfSxjLnByb3RvdHlwZS50aXA9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdGlwPXRoaXMuJHRpcHx8YSh0aGlzLm9wdGlvbnMudGVtcGxhdGUpfSxjLnByb3RvdHlwZS5hcnJvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRhcnJvdz10aGlzLiRhcnJvd3x8dGhpcy50aXAoKS5maW5kKCIudG9vbHRpcC1hcnJvdyIpfSxjLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITB9LGMucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9ITF9LGMucHJvdG90eXBlLnRvZ2dsZUVuYWJsZWQ9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWQ9IXRoaXMuZW5hYmxlZH0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7YiYmKGM9YShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlKSxjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSksYy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKX0pfTt2YXIgZD1hLmZuLnRvb2x0aXA7YS5mbi50b29sdGlwPWIsYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWMsYS5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b29sdGlwPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5wb3BvdmVyIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmIsZz1mJiZmLnNlbGVjdG9yOyhlfHwiZGVzdHJveSIhPWIpJiYoZz8oZXx8ZC5kYXRhKCJicy5wb3BvdmVyIixlPXt9KSxlW2ddfHwoZVtnXT1uZXcgYyh0aGlzLGYpKSk6ZXx8ZC5kYXRhKCJicy5wb3BvdmVyIixlPW5ldyBjKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpKX0pfXZhciBjPWZ1bmN0aW9uKGEsYil7dGhpcy5pbml0KCJwb3BvdmVyIixhLGIpfTtpZighYS5mbi50b29sdGlwKXRocm93IG5ldyBFcnJvcigiUG9wb3ZlciByZXF1aXJlcyB0b29sdGlwLmpzIik7Yy5WRVJTSU9OPSIzLjMuMSIsYy5ERUZBVUxUUz1hLmV4dGVuZCh7fSxhLmZuLnRvb2x0aXAuQ29uc3RydWN0b3IuREVGQVVMVFMse3BsYWNlbWVudDoicmlnaHQiLHRyaWdnZXI6ImNsaWNrIixjb250ZW50OiIiLHRlbXBsYXRlOic8ZGl2IGNsYXNzPSJwb3BvdmVyIiByb2xlPSJ0b29sdGlwIj48ZGl2IGNsYXNzPSJhcnJvdyI+PC9kaXY+PGgzIGNsYXNzPSJwb3BvdmVyLXRpdGxlIj48L2gzPjxkaXYgY2xhc3M9InBvcG92ZXItY29udGVudCI+PC9kaXY+PC9kaXY+J30pLGMucHJvdG90eXBlPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5wcm90b3R5cGUpLGMucHJvdG90eXBlLmNvbnN0cnVjdG9yPWMsYy5wcm90b3R5cGUuZ2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5ERUZBVUxUU30sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCksYz10aGlzLmdldENvbnRlbnQoKTthLmZpbmQoIi5wb3BvdmVyLXRpdGxlIilbdGhpcy5vcHRpb25zLmh0bWw/Imh0bWwiOiJ0ZXh0Il0oYiksYS5maW5kKCIucG9wb3Zlci1jb250ZW50IikuY2hpbGRyZW4oKS5kZXRhY2goKS5lbmQoKVt0aGlzLm9wdGlvbnMuaHRtbD8ic3RyaW5nIj09dHlwZW9mIGM/Imh0bWwiOiJhcHBlbmQiOiJ0ZXh0Il0oYyksYS5yZW1vdmVDbGFzcygiZmFkZSB0b3AgYm90dG9tIGxlZnQgcmlnaHQgaW4iKSxhLmZpbmQoIi5wb3BvdmVyLXRpdGxlIikuaHRtbCgpfHxhLmZpbmQoIi5wb3BvdmVyLXRpdGxlIikuaGlkZSgpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKXx8dGhpcy5nZXRDb250ZW50KCl9LGMucHJvdG90eXBlLmdldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRlbGVtZW50LGI9dGhpcy5vcHRpb25zO3JldHVybiBhLmF0dHIoImRhdGEtY29udGVudCIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGIuY29udGVudD9iLmNvbnRlbnQuY2FsbChhWzBdKTpiLmNvbnRlbnQpfSxjLnByb3RvdHlwZS5hcnJvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLiRhcnJvdz10aGlzLiRhcnJvd3x8dGhpcy50aXAoKS5maW5kKCIuYXJyb3ciKX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHRpcHx8KHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSkpLHRoaXMuJHRpcH07dmFyIGQ9YS5mbi5wb3BvdmVyO2EuZm4ucG9wb3Zlcj1iLGEuZm4ucG9wb3Zlci5Db25zdHJ1Y3Rvcj1jLGEuZm4ucG9wb3Zlci5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ucG9wb3Zlcj1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihjLGQpe3ZhciBlPWEucHJveHkodGhpcy5wcm9jZXNzLHRoaXMpO3RoaXMuJGJvZHk9YSgiYm9keSIpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKCJib2R5Iik/d2luZG93OmMpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxiLkRFRkFVTFRTLGQpLHRoaXMuc2VsZWN0b3I9KHRoaXMub3B0aW9ucy50YXJnZXR8fCIiKSsiIC5uYXYgbGkgPiBhIix0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuYWN0aXZlVGFyZ2V0PW51bGwsdGhpcy5zY3JvbGxIZWlnaHQ9MCx0aGlzLiRzY3JvbGxFbGVtZW50Lm9uKCJzY3JvbGwuYnMuc2Nyb2xsc3B5IixlKSx0aGlzLnJlZnJlc2goKSx0aGlzLnByb2Nlc3MoKX1mdW5jdGlvbiBjKGMpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5zY3JvbGxzcHkiKSxmPSJvYmplY3QiPT10eXBlb2YgYyYmYztlfHxkLmRhdGEoImJzLnNjcm9sbHNweSIsZT1uZXcgYih0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGMmJmVbY10oKX0pfWIuVkVSU0lPTj0iMy4zLjEiLGIuREVGQVVMVFM9e29mZnNldDoxMH0sYi5wcm90b3R5cGUuZ2V0U2Nyb2xsSGVpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0fHxNYXRoLm1heCh0aGlzLiRib2R5WzBdLnNjcm9sbEhlaWdodCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KX0sYi5wcm90b3R5cGUucmVmcmVzaD1mdW5jdGlvbigpe3ZhciBiPSJvZmZzZXQiLGM9MDthLmlzV2luZG93KHRoaXMuJHNjcm9sbEVsZW1lbnRbMF0pfHwoYj0icG9zaXRpb24iLGM9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSksdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLnNjcm9sbEhlaWdodD10aGlzLmdldFNjcm9sbEhlaWdodCgpO3ZhciBkPXRoaXM7dGhpcy4kYm9keS5maW5kKHRoaXMuc2VsZWN0b3IpLm1hcChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoInRhcmdldCIpfHxkLmF0dHIoImhyZWYiKSxmPS9eIy4vLnRlc3QoZSkmJmEoZSk7cmV0dXJuIGYmJmYubGVuZ3RoJiZmLmlzKCI6dmlzaWJsZSIpJiZbW2ZbYl0oKS50b3ArYyxlXV18fG51bGx9KS5zb3J0KGZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMF0tYlswXX0pLmVhY2goZnVuY3Rpb24oKXtkLm9mZnNldHMucHVzaCh0aGlzWzBdKSxkLnRhcmdldHMucHVzaCh0aGlzWzFdKX0pfSxiLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRzY3JvbGxFbGVtZW50LnNjcm9sbFRvcCgpK3RoaXMub3B0aW9ucy5vZmZzZXQsYz10aGlzLmdldFNjcm9sbEhlaWdodCgpLGQ9dGhpcy5vcHRpb25zLm9mZnNldCtjLXRoaXMuJHNjcm9sbEVsZW1lbnQuaGVpZ2h0KCksZT10aGlzLm9mZnNldHMsZj10aGlzLnRhcmdldHMsZz10aGlzLmFjdGl2ZVRhcmdldDtpZih0aGlzLnNjcm9sbEhlaWdodCE9YyYmdGhpcy5yZWZyZXNoKCksYj49ZClyZXR1cm4gZyE9KGE9ZltmLmxlbmd0aC0xXSkmJnRoaXMuYWN0aXZhdGUoYSk7aWYoZyYmYjxlWzBdKXJldHVybiB0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuY2xlYXIoKTtmb3IoYT1lLmxlbmd0aDthLS07KWchPWZbYV0mJmI+PWVbYV0mJighZVthKzFdfHxiPD1lW2ErMV0pJiZ0aGlzLmFjdGl2YXRlKGZbYV0pfSxiLnByb3RvdHlwZS5hY3RpdmF0ZT1mdW5jdGlvbihiKXt0aGlzLmFjdGl2ZVRhcmdldD1iLHRoaXMuY2xlYXIoKTt2YXIgYz10aGlzLnNlbGVjdG9yKydbZGF0YS10YXJnZXQ9IicrYisnIl0sJyt0aGlzLnNlbGVjdG9yKydbaHJlZj0iJytiKyciXScsZD1hKGMpLnBhcmVudHMoImxpIikuYWRkQ2xhc3MoImFjdGl2ZSIpO2QucGFyZW50KCIuZHJvcGRvd24tbWVudSIpLmxlbmd0aCYmKGQ9ZC5jbG9zZXN0KCJsaS5kcm9wZG93biIpLmFkZENsYXNzKCJhY3RpdmUiKSksZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pCn0pfX19LGMucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIsZCxlKXtmdW5jdGlvbiBmKCl7Zy5yZW1vdmVDbGFzcygiYWN0aXZlIikuZmluZCgiPiAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIikuZW5kKCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJ0YWIiXScpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSxiLmFkZENsYXNzKCJhY3RpdmUiKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLGg/KGJbMF0ub2Zmc2V0V2lkdGgsYi5hZGRDbGFzcygiaW4iKSk6Yi5yZW1vdmVDbGFzcygiZmFkZSIpLGIucGFyZW50KCIuZHJvcGRvd24tbWVudSIpJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPXRoaXMudW5waW49dGhpcy5waW5uZWRPZmZzZXQ9bnVsbCx0aGlzLmNoZWNrUG9zaXRpb24oKX07Yy5WRVJTSU9OPSIzLjMuMSIsYy5SRVNFVD0iYWZmaXggYWZmaXgtdG9wIGFmZml4LWJvdHRvbSIsYy5ERUZBVUxUUz17b2Zmc2V0OjAsdGFyZ2V0OndpbmRvd30sYy5wcm90b3R5cGUuZ2V0U3RhdGU9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGY9dGhpcy4kZWxlbWVudC5vZmZzZXQoKSxnPXRoaXMuJHRhcmdldC5oZWlnaHQoKTtpZihudWxsIT1jJiYidG9wIj09dGhpcy5hZmZpeGVkKXJldHVybiBjPmU/InRvcCI6ITE7aWYoImJvdHRvbSI9PXRoaXMuYWZmaXhlZClyZXR1cm4gbnVsbCE9Yz9lK3RoaXMudW5waW48PWYudG9wPyExOiJib3R0b20iOmEtZD49ZStnPyExOiJib3R0b20iO3ZhciBoPW51bGw9PXRoaXMuYWZmaXhlZCxpPWg/ZTpmLnRvcCxqPWg/ZzpiO3JldHVybiBudWxsIT1jJiZjPj1pPyJ0b3AiOm51bGwhPWQmJmkraj49YS1kPyJib3R0b20iOiExfSxjLnByb3RvdHlwZS5nZXRQaW5uZWRPZmZzZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLnBpbm5lZE9mZnNldClyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcygiYWZmaXgiKTt2YXIgYT10aGlzLiR0YXJnZXQuc2Nyb2xsVG9wKCksYj10aGlzLiRlbGVtZW50Lm9mZnNldCgpO3JldHVybiB0aGlzLnBpbm5lZE9mZnNldD1iLnRvcC1hfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uV2l0aEV2ZW50TG9vcD1mdW5jdGlvbigpe3NldFRpbWVvdXQoYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcyksMSl9LGMucHJvdG90eXBlLmNoZWNrUG9zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLiRlbGVtZW50LmlzKCI6dmlzaWJsZSIpKXt2YXIgYj10aGlzLiRlbGVtZW50LmhlaWdodCgpLGQ9dGhpcy5vcHRpb25zLm9mZnNldCxlPWQudG9wLGY9ZC5ib3R0b20sZz1hKCJib2R5IikuaGVpZ2h0KCk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
<script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
<script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Ow=="></script>
<style type="text/css">
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 300;
src: url(fonts/SourceSansProLight.ttf) format('truetype');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: url(fonts/SourceSansPro.ttf) format('truetype');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 700;
src: url(fonts/SourceSansProBold.ttf) format('truetype');
}
/*!
* bootswatch v3.3.1+1
* Homepage: http://bootswatch.com
* Copyright 2012-2014 Thomas Park
* Licensed under MIT
* Based on Bootstrap
*//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2780e3;text-decoration:none}a:hover,a:focus{color:#165ba8;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #e6e6e6}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#ff7518;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2780e3}a.text-primary:hover{color:#1967be}.text-success{color:#ffffff}a.text-success:hover{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2780e3}a.bg-primary:hover{background-color:#1967be}.bg-success{background-color:#3fb618}a.bg-success:hover{background-color:#2f8912}.bg-info{background-color:#9954bb}a.bg-info:hover{background-color:#7e3f9d}.bg-warning{background-color:#ff7518}a.bg-warning:hover{background-color:#e45c00}.bg-danger{background-color:#ff0039}a.bg-danger:hover{background-color:#cc002e}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #e6e6e6}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #e6e6e6}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #e6e6e6;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#3fb618}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#379f15}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#9954bb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#8d46b0}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff7518}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#fe6600}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff0039}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#e60033}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:43px;padding:10px 18px;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#e6e6e6;opacity:1}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:43px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg{line-height:64px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-sm,select.form-group-sm .form-control{height:31px;line-height:31px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:64px;padding:18px 30px;font-size:19px;line-height:1.33;border-radius:0}select.input-lg,select.form-group-lg .form-control{height:64px;line-height:64px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:53.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:43px;height:43px;line-height:43px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:64px;height:64px;line-height:64px}.input-sm+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#3fb618}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff7518}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff0039}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:24.94px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 18px;font-size:15px;line-height:1.42857143;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#ffffff;background-color:#222222;border-color:#222222}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#090909;border-color:#040404}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#222222;border-color:#222222}.btn-default .badge{color:#222222;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#1967be;border-color:#1862b5}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2780e3;border-color:#2780e3}.btn-primary .badge{color:#2780e3;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3fb618;border-color:#3fb618}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2f8912;border-color:#2c8011}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3fb618;border-color:#3fb618}.btn-success .badge{color:#3fb618;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9954bb;border-color:#9954bb}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#7e3f9d;border-color:#783c96}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9954bb;border-color:#9954bb}.btn-info .badge{color:#9954bb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff7518;border-color:#ff7518}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e45c00;border-color:#da5800}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff7518;border-color:#ff7518}.btn-warning .badge{color:#ff7518;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff0039;border-color:#ff0039}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#cc002e;border-color:#c2002b}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ff0039;border-color:#ff0039}.btn-danger .badge{color:#ff0039;background-color:#ffffff}.btn-link{color:#2780e3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#165ba8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:18px 30px;font-size:19px;line-height:1.33;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2780e3}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2780e3}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:64px;padding:18px 30px;font-size:19px;line-height:1.33;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:64px;line-height:64px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 18px;font-size:15px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#e6e6e6;border:1px solid #cccccc;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:0}.input-group-addon.input-lg{padding:18px 30px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#e6e6e6}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#e6e6e6;border-color:#2780e3}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#e6e6e6 #e6e6e6 #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2780e3}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3.5px;margin-bottom:3.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3.5px;margin-bottom:3.5px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#222222;border-color:#121212}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#090909}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#121212}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#090909;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#2780e3;border-color:#1967be}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#1967be}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#1a6ecc}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#1967be;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ffffff;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#ffffff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 18px;line-height:1.42857143;text-decoration:none;color:#2780e3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#165ba8;background-color:#e6e6e6;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 30px;font-size:19px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:0}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#e6e6e6}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#222222}.label-default[href]:hover,.label-default[href]:focus{background-color:#090909}.label-primary{background-color:#2780e3}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1967be}.label-success{background-color:#3fb618}.label-success[href]:hover,.label-success[href]:focus{background-color:#2f8912}.label-info{background-color:#9954bb}.label-info[href]:hover,.label-info[href]:focus{background-color:#7e3f9d}.label-warning{background-color:#ff7518}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e45c00}.label-danger{background-color:#ff0039}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#cc002e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#2780e3;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2780e3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#e6e6e6}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#cccccc}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:67.5px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2780e3}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#3fb618;border-color:#4e9f15;color:#ffffff}.alert-success hr{border-top-color:#438912}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#9954bb;border-color:#7643a8;color:#ffffff}.alert-info hr{border-top-color:#693c96}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff7518;border-color:#ff4309;color:#ffffff}.alert-warning hr{border-top-color:#ee3800}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ff0039;border-color:#f0005e;color:#ffffff}.alert-danger hr{border-top-color:#d60054}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#2780e3;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3fb618}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9954bb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff7518}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff0039}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item{color:#555555}a.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#e6e6e6;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2780e3;border-color:#dddddd}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#dceafa}.list-group-item-success{color:#ffffff;background-color:#3fb618}a.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#ffffff;background-color:#379f15}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#9954bb}a.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#ffffff;background-color:#8d46b0}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff7518}a.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#ffffff;background-color:#fe6600}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff0039}a.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#ffffff;background-color:#e60033}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#2780e3}.panel-primary>.panel-heading{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2780e3}.panel-primary>.panel-heading .badge{color:#2780e3;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2780e3}.panel-success{border-color:#4e9f15}.panel-success>.panel-heading{color:#ffffff;background-color:#3fb618;border-color:#4e9f15}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#4e9f15}.panel-success>.panel-heading .badge{color:#3fb618;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#4e9f15}.panel-info{border-color:#7643a8}.panel-info>.panel-heading{color:#ffffff;background-color:#9954bb;border-color:#7643a8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#7643a8}.panel-info>.panel-heading .badge{color:#9954bb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#7643a8}.panel-warning{border-color:#ff4309}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff7518;border-color:#ff4309}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff4309}.panel-warning>.panel-heading .badge{color:#ff7518;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff4309}.panel-danger{border-color:#f0005e}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff0039;border-color:#f0005e}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f0005e}.panel-danger>.panel-heading .badge{color:#ff0039;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f0005e}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:rgba(0,0,0,0.9);border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:rgba(0,0,0,0.9)}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:rgba(0,0,0,0.9)}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:rgba(0,0,0,0.9)}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:rgba(0,0,0,0.9)}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-size:15px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important;visibility:hidden !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-inverse .badge{background-color:#fff;color:#2780e3}body{-webkit-font-smoothing:antialiased}.text-primary,.text-primary:hover{color:#2780e3}.text-success,.text-success:hover{color:#3fb618}.text-danger,.text-danger:hover{color:#ff0039}.text-warning,.text-warning:hover{color:#ff7518}.text-info,.text-info:hover{color:#9954bb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a,.table .success a,table .warning a,.table .warning a,table .danger a,.table .danger a,table .info a,.table .info a{color:#fff}.has-warning .help-block,.has-warning .control-label,.has-warning .form-control-feedback{color:#ff7518}.has-warning .form-control,.has-warning .form-control:focus,.has-warning .input-group-addon{border:1px solid #ff7518}.has-error .help-block,.has-error .control-label,.has-error .form-control-feedback{color:#ff0039}.has-error .form-control,.has-error .form-control:focus,.has-error .input-group-addon{border:1px solid #ff0039}.has-success .help-block,.has-success .control-label,.has-success .form-control-feedback{color:#3fb618}.has-success .form-control,.has-success .form-control:focus,.has-success .input-group-addon{border:1px solid #3fb618}.nav-pills>li>a{border-radius:0}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:none}.close{text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{opacity:1}.alert{border:none}.alert .alert-link{text-decoration:underline;color:#fff}.label{border-radius:0}.progress{height:8px;-webkit-box-shadow:none;box-shadow:none}.progress .progress-bar{font-size:8px;line-height:8px}.panel-heading,.panel-footer{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#333333}a.list-group-item-success.active{background-color:#3fb618}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#379f15}a.list-group-item-warning.active{background-color:#ff7518}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#fe6600}a.list-group-item-danger.active{background-color:#ff0039}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#e60033}.modal .close{color:#333333}.popover{color:#333333}
</style>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEltcGxlbWVudCBhIHZhZ3VlIGZhY3NpbWlsaWUgb2YgalF1ZXJ5J3MgZGF0YSBtZXRob2QKICBmdW5jdGlvbiBlbGVtZW50RGF0YShlbCwgbmFtZSwgdmFsdWUpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDIpIHsKICAgICAgcmV0dXJuIGVsWyJodG1sd2lkZ2V0X2RhdGFfIiArIG5hbWVdOwogICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDMpIHsKICAgICAgZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV0gPSB2YWx1ZTsKICAgICAgcmV0dXJuIGVsOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBlbGVtZW50RGF0YTogIiArCiAgICAgICAgYXJndW1lbnRzLmxlbmd0aCk7CiAgICB9CiAgfQoKICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0NDYxNzAvZXNjYXBlLXN0cmluZy1mb3ItdXNlLWluLWphdmFzY3JpcHQtcmVnZXgKICBmdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyKSB7CiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1tcLVxbXF1cL1x7XH1cKFwpXCpcK1w/XC5cXFxeXCRcfF0vZywgIlxcJCYiKTsKICB9CgogIGZ1bmN0aW9uIGhhc0NsYXNzKGVsLCBjbGFzc05hbWUpIHsKICAgIHZhciByZSA9IG5ldyBSZWdFeHAoIlxcYiIgKyBlc2NhcGVSZWdFeHAoY2xhc3NOYW1lKSArICJcXGIiKTsKICAgIHJldHVybiByZS50ZXN0KGVsLmNsYXNzTmFtZSk7CiAgfQoKICAvLyBlbGVtZW50cyAtIGFycmF5IChvciBhcnJheS1saWtlIG9iamVjdCkgb2YgSFRNTCBlbGVtZW50cwogIC8vIGNsYXNzTmFtZSAtIGNsYXNzIG5hbWUgdG8gdGVzdCBmb3IKICAvLyBpbmNsdWRlIC0gaWYgdHJ1ZSwgb25seSByZXR1cm4gZWxlbWVudHMgd2l0aCBnaXZlbiBjbGFzc05hbWU7CiAgLy8gICBpZiBmYWxzZSwgb25seSByZXR1cm4gZWxlbWVudHMgKndpdGhvdXQqIGdpdmVuIGNsYXNzTmFtZQogIGZ1bmN0aW9uIGZpbHRlckJ5Q2xhc3MoZWxlbWVudHMsIGNsYXNzTmFtZSwgaW5jbHVkZSkgewogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKGhhc0NsYXNzKGVsZW1lbnRzW2ldLCBjbGFzc05hbWUpID09IGluY2x1ZGUpCiAgICAgICAgcmVzdWx0cy5wdXNoKGVsZW1lbnRzW2ldKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KCiAgZnVuY3Rpb24gb24ob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmouYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBvYmouYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGZ1bmMsIGZhbHNlKTsKICAgIH0gZWxzZSBpZiAob2JqLmF0dGFjaEV2ZW50KSB7CiAgICAgIG9iai5hdHRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gb2ZmKG9iaiwgZXZlbnROYW1lLCBmdW5jKSB7CiAgICBpZiAob2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIpCiAgICAgIG9iai5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgZWxzZSBpZiAob2JqLmRldGFjaEV2ZW50KSB7CiAgICAgIG9iai5kZXRhY2hFdmVudChldmVudE5hbWUsIGZ1bmMpOwogICAgfQogIH0KCiAgLy8gVHJhbnNsYXRlIGFycmF5IG9mIHZhbHVlcyB0byB0b3AvcmlnaHQvYm90dG9tL2xlZnQsIGFzIHVzdWFsIHdpdGgKICAvLyB0aGUgInBhZGRpbmciIENTUyBwcm9wZXJ0eQogIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9wYWRkaW5nCiAgZnVuY3Rpb24gdW5wYWNrUGFkZGluZyh2YWx1ZSkgewogICAgaWYgKHR5cGVvZih2YWx1ZSkgPT09ICJudW1iZXIiKQogICAgICB2YWx1ZSA9IFt2YWx1ZV07CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAxKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzBdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVswXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAyKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzBdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAzKSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVsxXX07CiAgICB9CiAgICBpZiAodmFsdWUubGVuZ3RoID09PSA0KSB7CiAgICAgIHJldHVybiB7dG9wOiB2YWx1ZVswXSwgcmlnaHQ6IHZhbHVlWzFdLCBib3R0b206IHZhbHVlWzJdLCBsZWZ0OiB2YWx1ZVszXX07CiAgICB9CiAgfQoKICAvLyBDb252ZXJ0IGFuIHVucGFja2VkIHBhZGRpbmcgb2JqZWN0IHRvIGEgQ1NTIHZhbHVlCiAgZnVuY3Rpb24gcGFkZGluZ1RvQ3NzKHBhZGRpbmdPYmopIHsKICAgIHJldHVybiBwYWRkaW5nT2JqLnRvcCArICJweCAiICsgcGFkZGluZ09iai5yaWdodCArICJweCAiICsgcGFkZGluZ09iai5ib3R0b20gKyAicHggIiArIHBhZGRpbmdPYmoubGVmdCArICJweCI7CiAgfQoKICAvLyBNYWtlcyBhIG51bWJlciBzdWl0YWJsZSBmb3IgQ1NTCiAgZnVuY3Rpb24gcHgoeCkgewogICAgaWYgKHR5cGVvZih4KSA9PT0gIm51bWJlciIpCiAgICAgIHJldHVybiB4ICsgInB4IjsKICAgIGVsc2UKICAgICAgcmV0dXJuIHg7CiAgfQoKICAvLyBSZXRyaWV2ZXMgcnVudGltZSB3aWRnZXQgc2l6aW5nIGluZm9ybWF0aW9uIGZvciBhbiBlbGVtZW50LgogIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgZWl0aGVyIG51bGwsIG9yIGFuIG9iamVjdCB3aXRoIGZpbGwsIHBhZGRpbmcsCiAgLy8gZGVmYXVsdFdpZHRoLCBkZWZhdWx0SGVpZ2h0IGZpZWxkcy4KICBmdW5jdGlvbiBzaXppbmdQb2xpY3koZWwpIHsKICAgIHZhciBzaXppbmdFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2h0bWx3aWRnZXQtc2l6aW5nJ10iKTsKICAgIGlmICghc2l6aW5nRWwpCiAgICAgIHJldHVybiBudWxsOwogICAgdmFyIHNwID0gSlNPTi5wYXJzZShzaXppbmdFbC50ZXh0Q29udGVudCB8fCBzaXppbmdFbC50ZXh0IHx8ICJ7fSIpOwogICAgaWYgKHZpZXdlck1vZGUpIHsKICAgICAgcmV0dXJuIHNwLnZpZXdlcjsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBzcC5icm93c2VyOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gYXMgYW4gb3V0cHV0IGJpbmRpbmcuCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICAgIC8vIFRoZSBiYXNlIG9iamVjdCBpcyBhIFNoaW55IG91dHB1dCBiaW5kaW5nIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZSwKICAgICAgLy8gb3IgYW4gZW1wdHkgb2JqZWN0IGlmIHdlJ3JlIG5vdC4KICAgICAgdmFyIHNoaW55QmluZGluZyA9IGV4dGVuZChuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpLCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CgogICAgICAvLyBXcmFwIHJlbmRlclZhbHVlIHRvIGhhbmRsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndAogICAgICAvLyBzdXBwb3J0ZWQgbmF0aXZlbHkgYnkgU2hpbnkgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgoKICAgICAgLy8gTkI6IHNoaW55QmluZGluZy5pbml0aWFsaXplIG1heSBiZSB1bmRlZmluZWQsIGFzIGl0J3Mgb3B0aW9uYWwuCgogICAgICAvLyBSZW5hbWUgaW5pdGlhbGl6ZSB0byBtYWtlIHN1cmUgaXQgaXNuJ3QgY2FsbGVkIGJ5IGEgZnV0dXJlIHZlcnNpb24KICAgICAgLy8gb2YgU2hpbnkgdGhhdCBkb2VzIHN1cHBvcnQgaW5pdGlhbGl6ZSBkaXJlY3RseS4KICAgICAgc2hpbnlCaW5kaW5nLl9odG1sd2lkZ2V0c19pbml0aWFsaXplID0gc2hpbnlCaW5kaW5nLmluaXRpYWxpemU7CiAgICAgIGRlbGV0ZSBzaGlueUJpbmRpbmcuaW5pdGlhbGl6ZTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUpIHsKCiAgICAgICAgICB2YXIgcmVzdWx0cyA9IHN1cGVyZnVuYyhzY29wZSk7CgogICAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgICB2YXIgZHluYW1pY1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcigiLmh0bWwtd2lkZ2V0LW91dHB1dCIpOwoKICAgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAgIC8vIFNpbmNlIHRoZXJlIG1pZ2h0IGJlIGxvdHMgb2YgZGlmZmVyZW50IGh0bWx3aWRnZXRzIGJpbmRpbmdzLCB3ZQogICAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAgIC8vIHRpbWVzLgogICAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoICE9PSBkeW5hbWljUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICAgIH07CiAgICAgIH0pOwoKICAgICAgb3ZlcnJpZGVNZXRob2Qoc2hpbnlCaW5kaW5nLCAicmVuZGVyVmFsdWUiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oZWwsIGRhdGEpIHsKICAgICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuZXZhbHMgJiYgaSA8IGRhdGEuZXZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyT25OdWxsVmFsdWUpIHsKICAgICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgaW5pdFNpemluZyhlbCk7CgogICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICAgIGlmICh0aGlzLl9odG1sd2lkZ2V0c19pbml0aWFsaXplKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2h0bWx3aWRnZXRzX2luaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgICBzdXBlcmZ1bmMoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIG92ZXJyaWRlTWV0aG9kKHNoaW55QmluZGluZywgInJlc2l6ZSIsIGZ1bmN0aW9uKHN1cGVyZnVuYykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgICAgLy8gU2hpbnkgY2FuIGNhbGwgcmVzaXplIGJlZm9yZSBpbml0aWFsaXplL3JlbmRlclZhbHVlIGhhdmUgYmVlbgogICAgICAgICAgLy8gY2FsbGVkLCB3aGljaCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHdpZGdldHMuCiAgICAgICAgICBpZiAoZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICAgIHN1cGVyZnVuYyhlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKCiAgICAgIFNoaW55Lm91dHB1dEJpbmRpbmdzLnJlZ2lzdGVyKHNoaW55QmluZGluZywgc2hpbnlCaW5kaW5nLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKCJzaG93biIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigiaGlkZGVuIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIG9mIGlvc2xpZGVzLCB3aGljaAogICAgICAgICAgLy8gZmxpcHMgc2xpZGVzIGJldHdlZW4gZGlzcGxheTpub25lIGFuZCBkaXNwbGF5OmJsb2NrLgogICAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgaGF2ZSB0byBoYXZlIGlvc2xpZGUtc3BlY2lmaWMgY29kZQogICAgICAgICAgLy8gaGVyZSwgYnV0IHJhdGhlciBoYXZlIGlvc2xpZGVzIHJhaXNlIGEgZ2VuZXJpYyBldmVudCwKICAgICAgICAgIC8vIGJ1dCB0aGUgcm1hcmtkb3duIHBhY2thZ2UganVzdCB3ZW50IHRvIENSQU4gc28gdGhlCiAgICAgICAgICAvLyB3aW5kb3cgdG8gZ2V0dGluZyB0aGF0IGZpeGVkIG1heSBiZSBsb25nLgogICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIC8vIEl0J3MgT0sgdG8gbGltaXQgdGhpcyB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAvLyBicm93c2VycyBiZWNhdXNlIGlvc2xpZGVzIGl0c2VsZiBvbmx5IHN1cHBvcnRzCiAgICAgICAgICAgIC8vIHN1Y2ggYnJvd3NlcnMuCiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVlbnRlciIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlbGVhdmUiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBzY3JpcHREYXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vanNvbiddIik7CiAgICAgICAgaWYgKHNjcmlwdERhdGEpIHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShzY3JpcHREYXRhLnRleHRDb250ZW50IHx8IHNjcmlwdERhdGEudGV4dCk7CiAgICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBkYXRhLmV2YWxzICYmIGsgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNba10pOwogICAgICAgICAgfQogICAgICAgICAgYmluZGluZy5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBpbml0UmVzdWx0KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICAvLyBXYWl0IHVudGlsIGFmdGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkIHRvIHJlbmRlciB0aGUgd2lkZ2V0cy4KICBpZiAoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkgewogICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgYXJndW1lbnRzLmNhbGxlZSwgZmFsc2UpOwogICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICB9LCBmYWxzZSk7CiAgfSBlbHNlIGlmIChkb2N1bWVudC5hdHRhY2hFdmVudCkgewogICAgZG9jdW1lbnQuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gImNvbXBsZXRlIikgewogICAgICAgIGRvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBhcmd1bWVudHMuY2FsbGVlKTsKICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICAgIH0KICAgIH0pOwogIH0KCgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRBdHRhY2htZW50VXJsID0gZnVuY3Rpb24oZGVwbmFtZSwga2V5KSB7CiAgICAvLyBJZiBubyBrZXksIGRlZmF1bHQgdG8gdGhlIGZpcnN0IGl0ZW0KICAgIGlmICh0eXBlb2Yoa2V5KSA9PT0gInVuZGVmaW5lZCIpCiAgICAgIGtleSA9IDE7CgogICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChkZXBuYW1lICsgIi0iICsga2V5ICsgIi1hdHRhY2htZW50Iik7CiAgICBpZiAoIWxpbmspIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdHRhY2htZW50ICIgKyBkZXBuYW1lICsgIi8iICsga2V5ICsgIiBub3QgZm91bmQgaW4gZG9jdW1lbnQiKTsKICAgIH0KICAgIHJldHVybiBsaW5rLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5kYXRhZnJhbWVUb0QzID0gZnVuY3Rpb24oZGYpIHsKICAgIHZhciBuYW1lcyA9IFtdOwogICAgdmFyIGxlbmd0aDsKICAgIGZvciAodmFyIG5hbWUgaW4gZGYpIHsKICAgICAgICBpZiAoZGYuaGFzT3duUHJvcGVydHkobmFtZSkpCiAgICAgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7CiAgICAgICAgaWYgKHR5cGVvZihkZltuYW1lXSkgIT09ICJvYmplY3QiIHx8IHR5cGVvZihkZltuYW1lXS5sZW5ndGgpID09PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTsKICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZihsZW5ndGgpICE9PSAidW5kZWZpbmVkIiAmJiBsZW5ndGggIT09IGRmW25hbWVdLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMgb2YgdGhlIHNhbWUgbGVuZ3RoIik7CiAgICAgICAgfQogICAgICAgIGxlbmd0aCA9IGRmW25hbWVdLmxlbmd0aDsKICAgIH0KICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgaXRlbTsKICAgIGZvciAodmFyIHJvdyA9IDA7IHJvdyA8IGxlbmd0aDsgcm93KyspIHsKICAgICAgICBpdGVtID0ge307CiAgICAgICAgZm9yICh2YXIgY29sID0gMDsgY29sIDwgbmFtZXMubGVuZ3RoOyBjb2wrKykgewogICAgICAgICAgICBpdGVtW25hbWVzW2NvbF1dID0gZGZbbmFtZXNbY29sXV1bcm93XTsKICAgICAgICB9CiAgICAgICAgcmVzdWx0cy5wdXNoKGl0ZW0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhcnJheSkgewogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07Cn0pKCk7Cgo="></script>
<script src="data:application/x-javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKICBuYW1lOiAiZGF0YXRhYmxlcyIsCiAgdHlwZTogIm91dHB1dCIsCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCBkYXRhKSB7CiAgICB2YXIgJGVsID0gJChlbCk7CiAgICAkZWwuZW1wdHkoKTsKCiAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIGNlbGxzID0gZGF0YS5kYXRhOwoKICAgIGlmIChjZWxscyBpbnN0YW5jZW9mIEFycmF5KSBjZWxscyA9IEhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQoY2VsbHMpOwoKICAgICRlbC5hcHBlbmQoZGF0YS5jb250YWluZXIpOwogICAgdmFyICR0YWJsZSA9ICRlbC5maW5kKCd0YWJsZScpOwogICAgaWYgKGRhdGEuY2FwdGlvbikgJHRhYmxlLnByZXBlbmQoZGF0YS5jYXB0aW9uKTsKCiAgICAvLyBjb2x1bW4gZmlsdGVycwogICAgdmFyIGZpbHRlclJvdzsKICAgIHN3aXRjaCAoZGF0YS5maWx0ZXIpIHsKICAgICAgY2FzZSAndG9wJzoKICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3RoZWFkJykuYXBwZW5kKGRhdGEuZmlsdGVySFRNTCk7CiAgICAgICAgZmlsdGVyUm93ID0gJHRhYmxlLmZpbmQoJ3RoZWFkIHRyOmxhc3QgdGQnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnYm90dG9tJzoKICAgICAgICBpZiAoJHRhYmxlLmNoaWxkcmVuKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgJHRhYmxlLmFwcGVuZCgkKCc8dGZvb3Q+JykpOwogICAgICAgIH0KICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3Rmb290JykucHJlcGVuZChkYXRhLmZpbHRlckhUTUwpOwogICAgICAgIGZpbHRlclJvdyA9ICR0YWJsZS5maW5kKCd0Zm9vdCB0cjpmaXJzdCB0ZCcpOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHZhciBvcHRpb25zID0geyBzZWFyY2hEZWxheTogMTAwMCB9OwogICAgaWYgKGNlbGxzICE9PSBudWxsKSBvcHRpb25zID0gewogICAgICBkYXRhOiBjZWxscwogICAgfTsKICAgICQuZXh0ZW5kKG9wdGlvbnMsIGRhdGEub3B0aW9ucyB8fCB7fSk7CgogICAgdmFyIHNlYXJjaENvbHMgPSBvcHRpb25zLnNlYXJjaENvbHM7CiAgICBpZiAoc2VhcmNoQ29scykgewogICAgICBzZWFyY2hDb2xzID0gc2VhcmNoQ29scy5tYXAoZnVuY3Rpb24oeCkgewogICAgICAgIHJldHVybiB4ID09PSBudWxsID8gJycgOiB4LnNlYXJjaDsKICAgICAgfSk7CiAgICAgIC8vIEZJWE1FOiB0aGlzIG1lYW5zIEkgZG9uJ3QgcmVzcGVjdCB0aGUgZXNjYXBlUmVnZXggc2V0dGluZwogICAgICBkZWxldGUgb3B0aW9ucy5zZWFyY2hDb2xzOwogICAgfQoKICAgIHZhciB0YWJsZSA9ICR0YWJsZS5EYXRhVGFibGUob3B0aW9ucyk7CgogICAgLy8gc2VydmVyLXNpZGUgcHJvY2Vzc2luZz8KICAgIHZhciBzZXJ2ZXIgPSBkYXRhLm9wdGlvbnMuc2VydmVyU2lkZSA9PT0gdHJ1ZTsKCiAgICB2YXIgaW5BcnJheSA9IGZ1bmN0aW9uKHZhbCwgYXJyYXkpIHsKICAgICAgcmV0dXJuICQuaW5BcnJheSh2YWwsIGFycmF5KSA+IC0xOwogICAgfTsKCiAgICBpZiAoZGF0YS5maWx0ZXIgIT09ICdub25lJykgewoKICAgICAgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKCiAgICAgICAgdmFyICR0ZCA9ICQodGQpLCB0eXBlID0gJHRkLmRhdGEoJ3R5cGUnKSwgZmlsdGVyOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgJGlucHV0Lm9uKCdpbnB1dCBibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAkaW5wdXQubmV4dCgnc3BhbicpLnRvZ2dsZShCb29sZWFuKCRpbnB1dC52YWwoKSkpOwogICAgICAgIH0pOwogICAgICAgIHZhciBzZWFyY2hDb2w7ICAvLyBzZWFyY2ggc3RyaW5nIGZvciB0aGlzIGNvbHVtbgogICAgICAgIGlmIChzZWFyY2hDb2xzICYmIHNlYXJjaENvbHNbaV0pIHsKICAgICAgICAgIHNlYXJjaENvbCA9IHNlYXJjaENvbHNbaV07CiAgICAgICAgICAkaW5wdXQudmFsKHNlYXJjaENvbCk7CiAgICAgICAgfQogICAgICAgIC8vIEJvb3RzdHJhcCBzZXRzIHBvaW50ZXItZXZlbnRzIHRvIG5vbmUgYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gY2xpY2sKICAgICAgICAvLyB0aGUgY2xlYXIgYnV0dG9uCiAgICAgICAgJGlucHV0Lm5leHQoJ3NwYW4nKS5jc3MoJ3BvaW50ZXItZXZlbnRzJywgJ2F1dG8nKS5oaWRlKCkuY2xpY2soZnVuY3Rpb24oKSB7CiAgICAgICAgICAkKHRoaXMpLmhpZGUoKS5wcmV2KCdpbnB1dCcpLnZhbCgnJykudHJpZ2dlcignaW5wdXQnKS5mb2N1cygpOwogICAgICAgIH0pOwogICAgICAgIHZhciAkeCA9ICR0ZC5jaGlsZHJlbignZGl2JykubGFzdCgpOwoKICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2ZhY3RvcicsICdsb2dpY2FsJ10pKSB7CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBjbGljazogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLmhpZGUoKTsgJHguc2hvdygpOyBmaWx0ZXJbMF0uc2VsZWN0aXplLmZvY3VzKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGlucHV0OiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoJGlucHV0LnZhbCgpID09PSAnJykgZmlsdGVyWzBdLnNlbGVjdGl6ZS5zZXRWYWx1ZShbXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgZmlsdGVyID0gJHguY2hpbGRyZW4oJ3NlbGVjdCcpLnNlbGVjdGl6ZSh7CiAgICAgICAgICAgIHBsdWdpbnM6IFsncmVtb3ZlX2J1dHRvbiddLAogICAgICAgICAgICBoaWRlU2VsZWN0ZWQ6IHRydWUsCiAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICRpbnB1dC52YWwodmFsdWUgPT09IG51bGwgPyAnJyA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7CiAgICAgICAgICAgICAgaWYgKHZhbHVlKSAkaW5wdXQudHJpZ2dlcignaW5wdXQnKTsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCAkaW5wdXQudmFsKCkpOwogICAgICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbihpKS5zZWFyY2godmFsdWUgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiAnJykuZHJhdygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyB0dXJuIG9mZiBmaWx0ZXIgaWYgbm90aGluZyBzZWxlY3RlZAogICAgICAgICAgICAgICR0ZC5kYXRhKCdmaWx0ZXInLCB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5sZW5ndGggPiAwKTsKICAgICAgICAgICAgICB0YWJsZS5kcmF3KCk7ICAvLyByZWRyYXcgdGFibGUsIGFuZCBmaWx0ZXJzIHdpbGwgYmUgYXBwbGllZAogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIC8vIGFuIHVnbHkgaGFjayB0byBkZWFsIHdpdGggc2hpbnk6IGZvciBzb21lIHJlYXNvbiwgdGhlIG9uQmx1ciBldmVudAogICAgICAgICAgLy8gb2Ygc2VsZWN0aXplIGRvZXMgbm90IHdvcmsgaW4gc2hpbnkKICAgICAgICAgICR4LmZpbmQoJ2RpdiA+IGRpdi5zZWxlY3RpemUtaW5wdXQgPiBpbnB1dCcpLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICR4LmhpZGUoKTsgJGlucHV0LnBhcmVudCgpLnNob3coKTsKICAgICAgICAgIH0pOwogICAgICAgICAgZmlsdGVyLm5leHQoJ2RpdicpLmNzcygnbWFyZ2luLWJvdHRvbScsICdhdXRvJyk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnY2hhcmFjdGVyJykgewogICAgICAgICAgdmFyIGZ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgcmVnZXggPSBmYWxzZSwgY2kgPSB0cnVlOwogICAgICAgICAgICBpZiAob3B0aW9ucy5zZWFyY2gpIHsKICAgICAgICAgICAgICByZWdleCA9IG9wdGlvbnMuc2VhcmNoLnJlZ2V4LAogICAgICAgICAgICAgIGNpID0gb3B0aW9ucy5zZWFyY2guY2FzZUluc2Vuc2l0aXZlICE9PSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKCRpbnB1dC52YWwoKSwgcmVnZXgsICFyZWdleCwgY2kpLmRyYXcoKTsKICAgICAgICAgIH07CiAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgIGZ1biA9ICQuZm4uZGF0YVRhYmxlLnV0aWwudGhyb3R0bGUoZnVuLCBvcHRpb25zLnNlYXJjaERlbGF5KTsKICAgICAgICAgIH0KICAgICAgICAgICRpbnB1dC5vbignaW5wdXQnLCBmdW4pOwogICAgICAgIH0gZWxzZSBpZiAoaW5BcnJheSh0eXBlLCBbJ251bWJlcicsICdpbnRlZ2VyJywgJ2RhdGUnLCAndGltZSddKSkgewogICAgICAgICAgdmFyICR4MCA9ICR4OwogICAgICAgICAgJHggPSAkeDAuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCk7CiAgICAgICAgICAkeDAuY3NzKHsKICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2ZmZicsCiAgICAgICAgICAgICdib3JkZXInOiAnMXB4ICNkZGQgc29saWQnLAogICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLAogICAgICAgICAgICAncGFkZGluZyc6ICcyMHB4IDIwcHggMTBweCAyMHB4JwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgJHNwYW5zID0gJHgwLmNoaWxkcmVuKCdzcGFuJykuY3NzKHsKICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAnMTBweCcsCiAgICAgICAgICAgICd3aGl0ZS1zcGFjZSc6ICdub3dyYXAnCiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkc3BhbjEgPSAkc3BhbnMuZmlyc3QoKSwgJHNwYW4yID0gJHNwYW5zLmxhc3QoKTsKICAgICAgICAgIHZhciByMSA9ICskeC5kYXRhKCdtaW4nKSwgcjIgPSArJHguZGF0YSgnbWF4Jyk7CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBmb2N1czogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJHgwLnNob3coKTsKICAgICAgICAgICAgICAvLyBmaXJzdCwgbWFrZSBzdXJlIHRoZSBzbGlkZXIgZGl2IGxlYXZlcyBhdCBsZWFzdCAyMHB4IGJldHdlZW4KICAgICAgICAgICAgICAvLyB0aGUgdHdvIChzbGlkZXIgdmFsdWUpIHNwYW4ncwogICAgICAgICAgICAgICR4MC53aWR0aChNYXRoLm1heCgxNjAsICRzcGFuMS5vdXRlcldpZHRoKCkgKyAkc3BhbjIub3V0ZXJXaWR0aCgpICsgMjApKTsKICAgICAgICAgICAgICAvLyB0aGVuLCBpZiB0aGUgaW5wdXQgaXMgcmVhbGx5IHdpZGUsIG1ha2UgdGhlIHNsaWRlciB0aGUgc2FtZQogICAgICAgICAgICAgIC8vIHdpZHRoIGFzIHRoZSBpbnB1dAogICAgICAgICAgICAgIGlmICgkeDAub3V0ZXJXaWR0aCgpIDwgJGlucHV0Lm91dGVyV2lkdGgoKSkgewogICAgICAgICAgICAgICAgJHgwLm91dGVyV2lkdGgoJGlucHV0Lm91dGVyV2lkdGgoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgc2xpZGVyIGRpdiBkb2VzIG5vdCByZWFjaCBiZXlvbmQgdGhlIHJpZ2h0IG1hcmdpbgogICAgICAgICAgICAgIGlmICgkKHdpbmRvdykud2lkdGgoKSA8ICR4MC5vZmZzZXQoKS5sZWZ0ICsgJHgwLndpZHRoKCkpIHsKICAgICAgICAgICAgICAgICR4MC5vZmZzZXQoewogICAgICAgICAgICAgICAgICAnbGVmdCc6ICRpbnB1dC5vZmZzZXQoKS5sZWZ0ICsgJGlucHV0Lm91dGVyV2lkdGgoKSAtICR4MC5vdXRlcldpZHRoKCkKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgYmx1cjogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJHgwLmhpZGUoKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlmICgkaW5wdXQudmFsKCkgPT09ICcnKSBmaWx0ZXIudmFsKFtyMSwgcjJdKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgY2hhbmdlOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YXIgdiA9ICRpbnB1dC52YWwoKS5yZXBsYWNlKC9ccy9nLCAnJyk7CiAgICAgICAgICAgICAgaWYgKHYgPT09ICcnKSByZXR1cm47CiAgICAgICAgICAgICAgdiA9IHYuc3BsaXQoJy4uLicpOwogICAgICAgICAgICAgIGlmICh2Lmxlbmd0aCAhPT0gMikgewogICAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLmFkZENsYXNzKCdoYXMtZXJyb3InKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHZbMF0gPT09ICcnKSB2WzBdID0gcjE7CiAgICAgICAgICAgICAgaWYgKHZbMV0gPT09ICcnKSB2WzFdID0gcjI7CiAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLnJlbW92ZUNsYXNzKCdoYXMtZXJyb3InKTsKICAgICAgICAgICAgICAvLyB0cmVhdCBkYXRlIGFzIFVUQyB0aW1lIGF0IG1pZG5pZ2h0CiAgICAgICAgICAgICAgdmFyIHN0clRpbWUgPSBmdW5jdGlvbih4KSB7CiAgICAgICAgICAgICAgICB2YXIgcyA9IHR5cGUgPT09ICdkYXRlJyA/ICdUMDA6MDA6MDBaJyA6ICcnOwogICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgRGF0ZSh4ICsgcykuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgLy8gYWRkIDEwIG1pbnV0ZXMgdG8gZGF0ZSBzaW5jZSBpdCBkb2VzIG5vdCBodXJ0IHRoZSBkYXRlLCBhbmQKICAgICAgICAgICAgICAgIC8vIGl0IGhlbHBzIGF2b2lkIHRoZSB0cmlja3kgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBwcm9ibGVtcywKICAgICAgICAgICAgICAgIC8vIGUuZy4gc29tZXRpbWVzIHRoZSBkYXRlIG1heSBiZSBhIGZldyBtaWxsaXNlY29uZHMgZWFybGllcgogICAgICAgICAgICAgICAgLy8gdGhhbiB0aGUgbWlkbmlnaHQgZHVlIHRvIHByZWNpc2lvbiBwcm9ibGVtcyBpbiBub1VpU2xpZGVyCiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9PT0gJ2RhdGUnID8gdCArIDM2MDAwMDAgOiB0OwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydkYXRlJywgJ3RpbWUnXSkpIHsKICAgICAgICAgICAgICAgIHZbMF0gPSBzdHJUaW1lKHZbMF0pOwogICAgICAgICAgICAgICAgdlsxXSA9IHN0clRpbWUodlsxXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGZpbHRlci52YWwodik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgdmFyIGZvcm1hdERhdGUgPSBmdW5jdGlvbihkKSB7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJykgcmV0dXJuIGQ7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnaW50ZWdlcicpIHJldHVybiBwYXJzZUludChkKTsKICAgICAgICAgICAgdmFyIHggPSBuZXcgRGF0ZSgrZCk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHsKICAgICAgICAgICAgICB2YXIgcGFkMCA9IGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoJzAnICsgeCkuc3Vic3RyKC0yLCAyKTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHJldHVybiB4LmdldFVUQ0Z1bGxZZWFyKCkgKyAnLScgKyBwYWQwKDEgKyB4LmdldFVUQ01vbnRoKCkpCiAgICAgICAgICAgICAgICAgICAgICArICctJyArIHBhZDAoeC5nZXRVVENEYXRlKCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJldHVybiB4LnRvSVNPU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICB2YXIgb3B0cyA9IHR5cGUgPT09ICdkYXRlJyA/IHsgc3RlcDogNjAgKiA2MCAqIDEwMDAgfSA6CiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdpbnRlZ2VyJyA/IHsgc3RlcDogMSB9IDoge307CiAgICAgICAgICBmaWx0ZXIgPSAkeC5ub1VpU2xpZGVyKCQuZXh0ZW5kKHsKICAgICAgICAgICAgc3RhcnQ6IFtyMSwgcjJdLAogICAgICAgICAgICByYW5nZToge21pbjogcjEsIG1heDogcjJ9LAogICAgICAgICAgICBjb25uZWN0OiB0cnVlCiAgICAgICAgICB9LCBvcHRzKSk7CiAgICAgICAgICAkc3BhbjEudGV4dChmb3JtYXREYXRlKHIxKSk7ICRzcGFuMi50ZXh0KGZvcm1hdERhdGUocjIpKTsKICAgICAgICAgIHZhciB1cGRhdGVTbGlkZXIgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciB2YWwgPSBmaWx0ZXIudmFsKCk7CiAgICAgICAgICAgIC8vIHR1cm4gb2ZmIGZpbHRlciBpZiBpbiBmdWxsIHJhbmdlCiAgICAgICAgICAgICR0ZC5kYXRhKCdmaWx0ZXInLCB2YWxbMF0gIT0gcjEgfHwgdmFsWzFdICE9IHIyKTsKICAgICAgICAgICAgdmFyIHYxID0gZm9ybWF0RGF0ZSh2YWxbMF0pLCB2MiA9IGZvcm1hdERhdGUodmFsWzFdKSwgaXZhbDsKICAgICAgICAgICAgaWYgKCR0ZC5kYXRhKCdmaWx0ZXInKSkgewogICAgICAgICAgICAgIGl2YWwgPSB2MSArICcgLi4uICcgKyB2MjsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCBpdmFsKS52YWwoaXZhbCkudHJpZ2dlcignaW5wdXQnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAkaW5wdXQuYXR0cigndGl0bGUnLCAnJykudmFsKCcnKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkc3BhbjEudGV4dCh2MSk7ICRzcGFuMi50ZXh0KHYyKTsKICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ3NsaWRlJykgcmV0dXJuOyAgLy8gbm8gc2VhcmNoaW5nIHdoZW4gc2xpZGluZyBvbmx5CiAgICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKCR0ZC5kYXRhKCdmaWx0ZXInKSA/IGl2YWwgOiAnJykuZHJhdygpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgICAgICB9OwogICAgICAgICAgZmlsdGVyLm9uKHsKICAgICAgICAgICAgc2V0OiB1cGRhdGVTbGlkZXIsCiAgICAgICAgICAgIHNsaWRlOiB1cGRhdGVTbGlkZXIKICAgICAgICAgIH0pOwogICAgICAgIH0KCiAgICAgICAgLy8gc2VydmVyLXNpZGUgcHJvY2Vzc2luZyB3aWxsIGJlIGhhbmRsZWQgYnkgUiAob3Igd2hhdGV2ZXIgc2VydmVyCiAgICAgICAgLy8gbGFuZ3VhZ2UgeW91IHVzZSk7IHRoZSBmb2xsb3dpbmcgY29kZSBpcyBvbmx5IG5lZWRlZCBmb3IgY2xpZW50LXNpZGUKICAgICAgICAvLyBwcm9jZXNzaW5nCiAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgLy8gaWYgYSBzZWFyY2ggc3RyaW5nIGhhcyBiZWVuIHByZS1zZXQsIHNlYXJjaCBub3cKICAgICAgICAgIGlmIChzZWFyY2hDb2wpIHRhYmxlLmNvbHVtbihpKS5zZWFyY2goc2VhcmNoQ29sKS5kcmF3KCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgY3VzdG9tRmlsdGVyID0gZnVuY3Rpb24oc2V0dGluZ3MsIGRhdGEsIGRhdGFJbmRleCkgewogICAgICAgICAgLy8gdGhlcmUgaXMgbm8gd2F5IHRvIGF0dGFjaCBhIHNlYXJjaCBmdW5jdGlvbiB0byBhIHNwZWNpZmljIHRhYmxlLAogICAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGEgZ2xvYmFsIHNlYXJjaCBmdW5jdGlvbiBpcyBub3QgYXBwbGllZCB0bwogICAgICAgICAgLy8gYWxsIHRhYmxlcyAoaS5lLiBhIHJhbmdlIGZpbHRlciBpbiBhIHByZXZpb3VzIHRhYmxlIHNob3VsZCBub3QgYmUKICAgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgdGFibGUpOyB3ZSB1c2UgdGhlIHNldHRpbmdzIG9iamVjdCB0bwogICAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIHdlIHdhbnQgdG8gcGVyZm9ybSBzZWFyY2hpbmcgb24gdGhlIGN1cnJlbnQgdGFibGUsCiAgICAgICAgICAvLyBzaW5jZSBzZXR0aW5ncy5zVGFibGVJZCB3aWxsIGJlIGRpZmZlcmVudCB0byBkaWZmZXJlbnQgdGFibGVzCiAgICAgICAgICBpZiAodGFibGUuc2V0dGluZ3MoKVswXSAhPT0gc2V0dGluZ3MpIHJldHVybiB0cnVlOwogICAgICAgICAgLy8gbm8gZmlsdGVyIG9uIHRoaXMgY29sdW1uIG9yIG5vIG5lZWQgdG8gZmlsdGVyIHRoaXMgY29sdW1uCiAgICAgICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3VuZGVmaW5lZCcgfHwgISR0ZC5kYXRhKCdmaWx0ZXInKSkgcmV0dXJuIHRydWU7CgogICAgICAgICAgdmFyIHIgPSBmaWx0ZXIudmFsKCksIHYsIHIwLCByMTsKICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnaW50ZWdlcicpIHsKICAgICAgICAgICAgdiA9IHBhcnNlRmxvYXQoZGF0YVtpXSk7CiAgICAgICAgICAgIC8vIGhvdyB0byBoYW5kbGUgTmFOPyBjdXJyZW50bHkgZXhjbHVkZSB0aGVzZSByb3dzCiAgICAgICAgICAgIGlmIChpc05hTih2KSkgcmV0dXJuKGZhbHNlKTsKICAgICAgICAgICAgcjAgPSBwYXJzZUZsb2F0KHJbMF0pOyByMSA9IHBhcnNlRmxvYXQoclsxXSk7CiAgICAgICAgICAgIGlmICh2ID49IHIwICYmIHYgPD0gcjEpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZGF0ZScgfHwgdHlwZSA9PT0gJ3RpbWUnKSB7CiAgICAgICAgICAgIHYgPSBuZXcgRGF0ZShkYXRhW2ldKTsKICAgICAgICAgICAgcjAgPSBuZXcgRGF0ZSgrclswXSk7IHIxID0gbmV3IERhdGUoK3JbMV0pOwogICAgICAgICAgICBpZiAodiA+PSByMCAmJiB2IDw9IHIxKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ZhY3RvcicpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwIHx8IGluQXJyYXkoZGF0YVtpXSwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbG9naWNhbCcpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKGluQXJyYXkoZGF0YVtpXSA9PT0gJycgPyAnbmEnIDogZGF0YVtpXSwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH07CgogICAgICAgICQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2gucHVzaChjdXN0b21GaWx0ZXIpOwoKICAgICAgICAvLyBzZWFyY2ggZm9yIHRoZSBwcmVzZXQgc2VhcmNoIHN0cmluZ3MgaWYgaXQgaXMgbm9uLWVtcHR5CiAgICAgICAgaWYgKHNlYXJjaENvbCkgewogICAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydmYWN0b3InLCAnbG9naWNhbCddKSkgewogICAgICAgICAgICBmaWx0ZXJbMF0uc2VsZWN0aXplLnNldFZhbHVlKEpTT04ucGFyc2Uoc2VhcmNoQ29sKSk7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjaGFyYWN0ZXInKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgICAgfSBlbHNlIGlmIChpbkFycmF5KHR5cGUsIFsnbnVtYmVyJywgJ2ludGVnZXInLCAnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICB9KTsKCiAgICB9CgogICAgLy8gaGlnaGxpZ2h0IHNlYXJjaCBrZXl3b3JkcwogICAgdmFyIGhpZ2hsaWdodCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgYm9keSA9ICQodGFibGUudGFibGUoKS5ib2R5KCkpOwogICAgICAvLyByZW1vdmluZyB0aGUgb2xkIGhpZ2hsaWdodGluZyBmaXJzdAogICAgICBib2R5LnVuaGlnaGxpZ2h0KCk7CgogICAgICAvLyBkb24ndCBoaWdobGlnaHQgdGhlICJub3QgZm91bmQiIHJvdywgc28gd2UgZ2V0IHRoZSByb3dzIHVzaW5nIHRoZSBhcGkKICAgICAgaWYgKHRhYmxlLnJvd3MoeyBmaWx0ZXI6ICdhcHBsaWVkJyB9KS5kYXRhKCkubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgIC8vIGhpZ2hsaWdodCBnbG9hbCBzZWFyY2gga2V5d29yZHMKICAgICAgYm9keS5oaWdobGlnaHQoJC50cmltKHRhYmxlLnNlYXJjaCgpKS5zcGxpdCgvXHMrLykpOwogICAgICAvLyB0aGVuIGhpZ2hsaWdodCBrZXl3b3JkcyBmcm9tIGluZGl2aWR1YWwgY29sdW1uIGZpbHRlcnMKICAgICAgaWYgKGZpbHRlclJvdykgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKICAgICAgICB2YXIgJHRkID0gJCh0ZCksIHR5cGUgPSAkdGQuZGF0YSgndHlwZScpOwogICAgICAgIGlmICh0eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgdmFyIGNvbHVtbiA9IHRhYmxlLmNvbHVtbihpKS5ub2RlcygpLnRvJCgpLAogICAgICAgICAgICB2YWwgPSAkLnRyaW0oJGlucHV0LnZhbCgpKTsKICAgICAgICBpZiAodHlwZSAhPT0gJ2NoYXJhY3RlcicgfHwgdmFsID09PSAnJykgcmV0dXJuOwogICAgICAgIGNvbHVtbi5oaWdobGlnaHQodmFsLnNwbGl0KC9ccysvKSk7CiAgICAgIH0pOwogICAgfTsKCiAgICBpZiAob3B0aW9ucy5zZWFyY2hIaWdobGlnaHQpIHsKICAgICAgdGFibGUKICAgICAgLm9uKCdkcmF3LmR0LmR0aCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGggY29sdW1uLXJlb3JkZXIuZHQuZHRoJywgaGlnaGxpZ2h0KQogICAgICAub24oJ2Rlc3Ryb3knLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyByZW1vdmUgZXZlbnQgaGFuZGxlcgogICAgICAgIHRhYmxlLm9mZiggJ2RyYXcuZHQuZHRoIGNvbHVtbi12aXNpYmlsaXR5LmR0LmR0aCBjb2x1bW4tcmVvcmRlci5kdC5kdGgnICk7CiAgICAgIH0pOwoKICAgICAgLy8gaW5pdGlhbCBoaWdobGlnaHQgZm9yIHN0YXRlIHNhdmVkIGNvbmRpdGlvbnMgYW5kIGluaXRpYWwgc3RhdGVzCiAgICAgIGhpZ2hsaWdodCgpOwogICAgfQoKICAgIC8vIGluaXRpYWxpemUgZXh0ZW5zaW9ucwogICAgZm9yICh2YXIgZXh0IGluIGRhdGEuZXh0T3B0aW9ucykgewogICAgICBuZXcgJC5mbi5kYXRhVGFibGVbZXh0XSh0YWJsZSwgZGF0YS5leHRPcHRpb25zW2V4dF0gfHwge30pOwogICAgfQoKICAgIC8vIHJ1biB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHRhYmxlIGluc3RhbmNlCiAgICBpZiAodHlwZW9mIGRhdGEuY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIGRhdGEuY2FsbGJhY2sodGFibGUpOwoKICAgIC8vIGludGVyYWN0aW9uIHdpdGggc2hpbnkKICAgIGlmICghSFRNTFdpZGdldHMuc2hpbnlNb2RlKSByZXR1cm47CgogICAgdmFyIGNoYW5nZUlucHV0ID0gZnVuY3Rpb24oaWQsIGRhdGEpIHsKICAgICAgU2hpbnkub25JbnB1dENoYW5nZShlbC5pZCArICdfJyArIGlkLCBkYXRhKTsKICAgIH07CgogICAgdmFyIGFkZE9uZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgcmV0dXJuIHgubWFwKGZ1bmN0aW9uKGkpIHsgcmV0dXJuIDEgKyBpOyB9KTsKICAgIH07CgogICAgdmFyIHVuaXF1ZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgdmFyIHV4ID0gW107CiAgICAgICQuZWFjaCh4LCBmdW5jdGlvbihpLCBlbCl7CiAgICAgICAgaWYgKCQuaW5BcnJheShlbCwgdXgpID09PSAtMSkgdXgucHVzaChlbCk7CiAgICAgIH0pOwogICAgICByZXR1cm4gdXg7CiAgICB9CgogICAgLy8gc2VsZWN0ZWQgcm93cwogICAgdmFyIHNlbGVjdGVkID0gW10sIHNlbGVjdGVkUm93cyA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3MoJy5zZWxlY3RlZCcsIHtzZWFyY2g6ICdhcHBsaWVkJ30pOwogICAgICAvLyByZXR1cm4gdGhlIGZpcnN0IGNvbHVtbiBpbiBzZXJ2ZXIgbW9kZSwgYW5kIHJvdyBpbmRpY2VzIGluIGNsaWVudCBtb2RlCiAgICAgIGlmICghc2VydmVyKSByZXR1cm4gYWRkT25lKHJvd3MuaW5kZXhlcygpLnRvQXJyYXkoKSk7CiAgICAgIHZhciBpZHMgPSByb3dzLmRhdGEoKS50b0FycmF5KCkubWFwKGZ1bmN0aW9uKGQpIHsKICAgICAgICByZXR1cm4gZFswXTsgIC8vIGFzc3VtZSB0aGUgZmlyc3QgY29sdW1uIGlzIHJvdyBuYW1lcwogICAgICB9KTsKICAgICAgc2VsZWN0ZWQgPSB1bmlxdWUoc2VsZWN0ZWQuY29uY2F0KGlkcykpOwogICAgICByZXR1cm4gc2VsZWN0ZWQ7CiAgICB9OwogICAgdmFyIHNlbGVjdGlvbiA9IGluQXJyYXkoZGF0YS5zZWxlY3Rpb24sIFsnc2luZ2xlJywgJ211bHRpcGxlJ10pOwogICAgdmFyIHNlbENsYXNzID0gZGF0YS5zdHlsZSA9PT0gJ2Jvb3RzdHJhcCcgPyAnYWN0aXZlJyA6ICdzZWxlY3RlZCc7CiAgICBpZiAoc2VsZWN0aW9uKSB0YWJsZS5vbignY2xpY2suZHQnLCAndHInLCBmdW5jdGlvbigpIHsKICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwgdGhpc1JvdyA9IHRhYmxlLnJvdyh0aGlzKTsKICAgICAgaWYgKGRhdGEuc2VsZWN0aW9uID09PSAnbXVsdGlwbGUnKSB7CiAgICAgICAgJHRoaXMudG9nZ2xlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICgkdGhpcy5oYXNDbGFzcyhzZWxDbGFzcykpIHsKICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFibGUuJCgndHIuJyArIHNlbENsYXNzKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChzZXJ2ZXIgJiYgISR0aGlzLmhhc0NsYXNzKHNlbENsYXNzKSkgewogICAgICAgIHZhciBpZCA9IHRoaXNSb3cuZGF0YSgpWzBdOwogICAgICAgIC8vIHJlbW92ZSBpZCBmcm9tIHNlbGVjdGVkIHNpbmNlIGl0cyBjbGFzcyAuc2VsZWN0ZWQgaGFzIGJlZW4gcmVtb3ZlZAogICAgICAgIHNlbGVjdGVkLnNwbGljZSgkLmluQXJyYXkoaWQsIHNlbGVjdGVkKSwgMSk7CiAgICAgIH0KICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZFJvd3MoKSk7CiAgICAgIGNoYW5nZUlucHV0KCdyb3dfbGFzdF9jbGlja2VkJywgc2VydmVyID8gdGhpc1Jvdy5kYXRhKClbMF0gOiB0aGlzUm93LmluZGV4KCkgKyAxKTsKICAgIH0pOwogICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZFJvd3MoKSk7CiAgICAvLyByZXN0b3JlIHNlbGVjdGVkIHJvd3MgYWZ0ZXIgdGhlIHRhYmxlIGlzIHJlZHJhd24gKGUuZy4gc29ydC9zZWFyY2gvcGFnZSk7CiAgICAvLyBjbGllbnQtc2lkZSB0YWJsZXMgd2lsbCBwcmVzZXJ2ZSB0aGUgc2VsZWN0aW9ucyBhdXRvbWF0aWNhbGx5OyBmb3IKICAgIC8vIHNlcnZlci1zaWRlIHRhYmxlcywgd2UgaGF2ZSB0byBjaGVjayBpZiB0aGUgcm93IG5hbWUgaXMgaW4gYHNlbGVjdGVkYAogICAgaWYgKHNlcnZlcikgdGFibGUub24oJ2RyYXcuZHQnLCBmdW5jdGlvbigpIHsKICAgICAgdGFibGUucm93cyh7cGFnZTogJ2N1cnJlbnQnfSkuZXZlcnkoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKGluQXJyYXkodGhpcy5kYXRhKClbMF0sIHNlbGVjdGVkKSkgewogICAgICAgICAgJCh0aGlzLm5vZGUoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKCiAgICAvLyBleHBvc2Ugc29tZSB0YWJsZSBpbmZvIHRvIFNoaW55CiAgICB2YXIgdXBkYXRlVGFibGVJbmZvID0gZnVuY3Rpb24oZSwgc2V0dGluZ3MpIHsKICAgICAgLy8gVE9ETzogaXMgYW55b25lIGludGVyZXN0ZWQgaW4gdGhlIHBhZ2UgaW5mbz8KICAgICAgLy8gY2hhbmdlSW5wdXQoJ3BhZ2VfaW5mbycsIHRhYmxlLnBhZ2UuaW5mbygpKTsKICAgICAgdmFyIHVwZGF0ZVJvd0luZm8gPSBmdW5jdGlvbihpZCwgbW9kaWZpZXIpIHsKICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3MoJC5leHRlbmQoewogICAgICAgICAgc2VhcmNoOiAnYXBwbGllZCcsCiAgICAgICAgICBwYWdlOiAnYWxsJwogICAgICAgIH0sIG1vZGlmaWVyKSk7CiAgICAgICAgdmFyIGlkeDsKICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICBpZHggPSByb3dzLmRhdGEoKS50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHhbMF07IH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZHggPSBhZGRPbmUocm93cy5pbmRleGVzKCkudG9BcnJheSgpKTsKICAgICAgICB9CiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3MnICsgJ18nICsgaWQsIGlkeCk7CiAgICAgIH07CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2N1cnJlbnQnLCB7cGFnZTogJ2N1cnJlbnQnfSk7CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2FsbCcsIHt9KTsKICAgIH07CiAgICB0YWJsZS5vbignZHJhdy5kdCcsIHVwZGF0ZVRhYmxlSW5mbyk7CiAgICB1cGRhdGVUYWJsZUluZm8oKTsKCiAgICAvLyBzdGF0ZSBpbmZvCiAgICB0YWJsZS5vbignZHJhdy5kdCcsIGZ1bmN0aW9uKCkgewogICAgICBjaGFuZ2VJbnB1dCgnc3RhdGUnLCB0YWJsZS5zdGF0ZSgpKTsKICAgIH0pOwogICAgY2hhbmdlSW5wdXQoJ3N0YXRlJywgdGFibGUuc3RhdGUoKSk7CgogICAgLy8gc2VhcmNoIGluZm8KICAgIHZhciB1cGRhdGVTZWFyY2hJbmZvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNoYW5nZUlucHV0KCdzZWFyY2gnLCB0YWJsZS5zZWFyY2goKSk7CiAgICAgIGlmIChmaWx0ZXJSb3cpIGNoYW5nZUlucHV0KCdzZWFyY2hfY29sdW1ucycsIGZpbHRlclJvdy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHRkKSB7CiAgICAgICAgcmV0dXJuICQodGQpLmZpbmQoJ2lucHV0JykuZmlyc3QoKS52YWwoKTsKICAgICAgfSkpOwogICAgfQogICAgdGFibGUub24oJ2RyYXcuZHQnLCB1cGRhdGVTZWFyY2hJbmZvKTsKICAgIHVwZGF0ZVNlYXJjaEluZm8oKTsKICB9Cn0pOwo="></script>
<script src="data:application/x-javascript;base64,LyohIERhdGFUYWJsZXMgMS4xMC43CiAqIMKpMjAwOC0yMDE1IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiAqLwooZnVuY3Rpb24oRWEsUSxrKXt2YXIgUD1mdW5jdGlvbihoKXtmdW5jdGlvbiBXKGEpe3ZhciBiLGMsZT17fTtoLmVhY2goYSxmdW5jdGlvbihkKXtpZigoYj1kLm1hdGNoKC9eKFteQS1aXSs/KShbQS1aXSkvKSkmJi0xIT09ImEgYWEgYWkgYW8gYXMgYiBmbiBpIG0gbyBzICIuaW5kZXhPZihiWzFdKyIgIikpYz1kLnJlcGxhY2UoYlswXSxiWzJdLnRvTG93ZXJDYXNlKCkpLGVbY109ZCwibyI9PT1iWzFdJiZXKGFbZF0pfSk7YS5faHVuZ2FyaWFuTWFwPWV9ZnVuY3Rpb24gSChhLGIsYyl7YS5faHVuZ2FyaWFuTWFwfHxXKGEpO3ZhciBlO2guZWFjaChiLGZ1bmN0aW9uKGQpe2U9YS5faHVuZ2FyaWFuTWFwW2RdO2lmKGUhPT1rJiYoY3x8YltlXT09PWspKSJvIj09PWUuY2hhckF0KDApPyhiW2VdfHwoYltlXT17fSksaC5leHRlbmQoITAsYltlXSxiW2RdKSxIKGFbZV0sYltlXSxjKSk6YltlXT1iW2RdfSl9ZnVuY3Rpb24gUChhKXt2YXIgYj1tLmRlZmF1bHRzLm9MYW5ndWFnZSxjPWEuc1plcm9SZWNvcmRzOwohYS5zRW1wdHlUYWJsZSYmKGMmJiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSI9PT1iLnNFbXB0eVRhYmxlKSYmRShhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiYoYyYmIkxvYWRpbmcuLi4iPT09Yi5zTG9hZGluZ1JlY29yZHMpJiZFKGEsYSwic1plcm9SZWNvcmRzIiwic0xvYWRpbmdSZWNvcmRzIik7YS5zSW5mb1Rob3VzYW5kcyYmKGEuc1Rob3VzYW5kcz1hLnNJbmZvVGhvdXNhbmRzKTsoYT1hLnNEZWNpbWFsKSYmZGIoYSl9ZnVuY3Rpb24gZWIoYSl7QShhLCJvcmRlcmluZyIsImJTb3J0Iik7QShhLCJvcmRlck11bHRpIiwiYlNvcnRNdWx0aSIpO0EoYSwib3JkZXJDbGFzc2VzIiwiYlNvcnRDbGFzc2VzIik7QShhLCJvcmRlckNlbGxzVG9wIiwiYlNvcnRDZWxsc1RvcCIpO0EoYSwib3JkZXIiLCJhYVNvcnRpbmciKTtBKGEsIm9yZGVyRml4ZWQiLCJhYVNvcnRpbmdGaXhlZCIpO0EoYSwicGFnaW5nIiwiYlBhZ2luYXRlIik7CkEoYSwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpO0EoYSwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIik7QShhLCJzZWFyY2hpbmciLCJiRmlsdGVyIik7aWYoYT1hLmFvU2VhcmNoQ29scylmb3IodmFyIGI9MCxjPWEubGVuZ3RoO2I8YztiKyspYVtiXSYmSChtLm1vZGVscy5vU2VhcmNoLGFbYl0pfWZ1bmN0aW9uIGZiKGEpe0EoYSwib3JkZXJhYmxlIiwiYlNvcnRhYmxlIik7QShhLCJvcmRlckRhdGEiLCJhRGF0YVNvcnQiKTtBKGEsIm9yZGVyU2VxdWVuY2UiLCJhc1NvcnRpbmciKTtBKGEsIm9yZGVyRGF0YVR5cGUiLCJzb3J0RGF0YVR5cGUiKTt2YXIgYj1hLmFEYXRhU29ydDtiJiYhaC5pc0FycmF5KGIpJiYoYS5hRGF0YVNvcnQ9W2JdKX1mdW5jdGlvbiBnYihhKXt2YXIgYT1hLm9Ccm93c2VyLGI9aCgiPGRpdi8+IikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxoZWlnaHQ6MSx3aWR0aDoxLG92ZXJmbG93OiJoaWRkZW4ifSkuYXBwZW5kKGgoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIiwKdG9wOjEsbGVmdDoxLHdpZHRoOjEwMCxvdmVyZmxvdzoic2Nyb2xsIn0pLmFwcGVuZChoKCc8ZGl2IGNsYXNzPSJ0ZXN0Ii8+JykuY3NzKHt3aWR0aDoiMTAwJSIsaGVpZ2h0OjEwfSkpKS5hcHBlbmRUbygiYm9keSIpLGM9Yi5maW5kKCIudGVzdCIpO2EuYlNjcm9sbE92ZXJzaXplPTEwMD09PWNbMF0ub2Zmc2V0V2lkdGg7YS5iU2Nyb2xsYmFyTGVmdD0xIT09TWF0aC5yb3VuZChjLm9mZnNldCgpLmxlZnQpO2IucmVtb3ZlKCl9ZnVuY3Rpb24gaGIoYSxiLGMsZSxkLGYpe3ZhciBnLGo9ITE7YyE9PWsmJihnPWMsaj0hMCk7Zm9yKDtlIT09ZDspYS5oYXNPd25Qcm9wZXJ0eShlKSYmKGc9aj9iKGcsYVtlXSxlLGEpOmFbZV0saj0hMCxlKz1mKTtyZXR1cm4gZ31mdW5jdGlvbiBGYShhLGIpe3ZhciBjPW0uZGVmYXVsdHMuY29sdW1uLGU9YS5hb0NvbHVtbnMubGVuZ3RoLGM9aC5leHRlbmQoe30sbS5tb2RlbHMub0NvbHVtbixjLHtuVGg6Yj9iOlEuY3JlYXRlRWxlbWVudCgidGgiKSxzVGl0bGU6Yy5zVGl0bGU/CmMuc1RpdGxlOmI/Yi5pbm5lckhUTUw6IiIsYURhdGFTb3J0OmMuYURhdGFTb3J0P2MuYURhdGFTb3J0OltlXSxtRGF0YTpjLm1EYXRhP2MubURhdGE6ZSxpZHg6ZX0pO2EuYW9Db2x1bW5zLnB1c2goYyk7Yz1hLmFvUHJlU2VhcmNoQ29scztjW2VdPWguZXh0ZW5kKHt9LG0ubW9kZWxzLm9TZWFyY2gsY1tlXSk7a2EoYSxlLGgoYikuZGF0YSgpKX1mdW5jdGlvbiBrYShhLGIsYyl7dmFyIGI9YS5hb0NvbHVtbnNbYl0sZT1hLm9DbGFzc2VzLGQ9aChiLm5UaCk7aWYoIWIuc1dpZHRoT3JpZyl7Yi5zV2lkdGhPcmlnPWQuYXR0cigid2lkdGgiKXx8bnVsbDt2YXIgZj0oZC5hdHRyKCJzdHlsZSIpfHwiIikubWF0Y2goL3dpZHRoOlxzKihcZCtbcHhlbSVdKykvKTtmJiYoYi5zV2lkdGhPcmlnPWZbMV0pfWMhPT1rJiZudWxsIT09YyYmKGZiKGMpLEgobS5kZWZhdWx0cy5jb2x1bW4sYyksYy5tRGF0YVByb3AhPT1rJiYhYy5tRGF0YSYmKGMubURhdGE9Yy5tRGF0YVByb3ApLGMuc1R5cGUmJgooYi5fc01hbnVhbFR5cGU9Yy5zVHlwZSksYy5jbGFzc05hbWUmJiFjLnNDbGFzcyYmKGMuc0NsYXNzPWMuY2xhc3NOYW1lKSxoLmV4dGVuZChiLGMpLEUoYixjLCJzV2lkdGgiLCJzV2lkdGhPcmlnIiksYy5pRGF0YVNvcnQhPT1rJiYoYi5hRGF0YVNvcnQ9W2MuaURhdGFTb3J0XSksRShiLGMsImFEYXRhU29ydCIpKTt2YXIgZz1iLm1EYXRhLGo9UihnKSxpPWIubVJlbmRlcj9SKGIubVJlbmRlcik6bnVsbCxjPWZ1bmN0aW9uKGEpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCJAIil9O2IuX2JBdHRyU3JjPWguaXNQbGFpbk9iamVjdChnKSYmKGMoZy5zb3J0KXx8YyhnLnR5cGUpfHxjKGcuZmlsdGVyKSk7Yi5mbkdldERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPWooYSxiLGssYyk7cmV0dXJuIGkmJmI/aShlLGIsYSxjKTplfTtiLmZuU2V0RGF0YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFMoZykoYSxiLGMpfTsibnVtYmVyIiE9PXR5cGVvZiBnJiYKKGEuX3Jvd1JlYWRPYmplY3Q9ITApO2Eub0ZlYXR1cmVzLmJTb3J0fHwoYi5iU29ydGFibGU9ITEsZC5hZGRDbGFzcyhlLnNTb3J0YWJsZU5vbmUpKTthPS0xIT09aC5pbkFycmF5KCJhc2MiLGIuYXNTb3J0aW5nKTtjPS0xIT09aC5pbkFycmF5KCJkZXNjIixiLmFzU29ydGluZyk7IWIuYlNvcnRhYmxlfHwhYSYmIWM/KGIuc1NvcnRpbmdDbGFzcz1lLnNTb3J0YWJsZU5vbmUsYi5zU29ydGluZ0NsYXNzSlVJPSIiKTphJiYhYz8oYi5zU29ydGluZ0NsYXNzPWUuc1NvcnRhYmxlQXNjLGIuc1NvcnRpbmdDbGFzc0pVST1lLnNTb3J0SlVJQXNjQWxsb3dlZCk6IWEmJmM/KGIuc1NvcnRpbmdDbGFzcz1lLnNTb3J0YWJsZURlc2MsYi5zU29ydGluZ0NsYXNzSlVJPWUuc1NvcnRKVUlEZXNjQWxsb3dlZCk6KGIuc1NvcnRpbmdDbGFzcz1lLnNTb3J0YWJsZSxiLnNTb3J0aW5nQ2xhc3NKVUk9ZS5zU29ydEpVSSl9ZnVuY3Rpb24gWChhKXtpZighMSE9PWEub0ZlYXR1cmVzLmJBdXRvV2lkdGgpe3ZhciBiPQphLmFvQ29sdW1ucztHYShhKTtmb3IodmFyIGM9MCxlPWIubGVuZ3RoO2M8ZTtjKyspYltjXS5uVGguc3R5bGUud2lkdGg9YltjXS5zV2lkdGh9Yj1hLm9TY3JvbGw7KCIiIT09Yi5zWXx8IiIhPT1iLnNYKSYmWShhKTt3KGEsbnVsbCwiY29sdW1uLXNpemluZyIsW2FdKX1mdW5jdGlvbiBsYShhLGIpe3ZhciBjPVooYSwiYlZpc2libGUiKTtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiBjW2JdP2NbYl06bnVsbH1mdW5jdGlvbiAkKGEsYil7dmFyIGM9WihhLCJiVmlzaWJsZSIpLGM9aC5pbkFycmF5KGIsYyk7cmV0dXJuLTEhPT1jP2M6bnVsbH1mdW5jdGlvbiBhYShhKXtyZXR1cm4gWihhLCJiVmlzaWJsZSIpLmxlbmd0aH1mdW5jdGlvbiBaKGEsYil7dmFyIGM9W107aC5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYSxkKXthW2JdJiZjLnB1c2goZCl9KTtyZXR1cm4gY31mdW5jdGlvbiBIYShhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWEuYW9EYXRhLGU9bS5leHQudHlwZS5kZXRlY3QsZCwKZixnLGosaSxoLGwscSxuO2Q9MDtmb3IoZj1iLmxlbmd0aDtkPGY7ZCsrKWlmKGw9YltkXSxuPVtdLCFsLnNUeXBlJiZsLl9zTWFudWFsVHlwZSlsLnNUeXBlPWwuX3NNYW51YWxUeXBlO2Vsc2UgaWYoIWwuc1R5cGUpe2c9MDtmb3Ioaj1lLmxlbmd0aDtnPGo7ZysrKXtpPTA7Zm9yKGg9Yy5sZW5ndGg7aTxoO2krKyl7bltpXT09PWsmJihuW2ldPXgoYSxpLGQsInR5cGUiKSk7cT1lW2ddKG5baV0sYSk7aWYoIXEmJmchPT1lLmxlbmd0aC0xKWJyZWFrO2lmKCJodG1sIj09PXEpYnJlYWt9aWYocSl7bC5zVHlwZT1xO2JyZWFrfX1sLnNUeXBlfHwobC5zVHlwZT0ic3RyaW5nIil9fWZ1bmN0aW9uIGliKGEsYixjLGUpe3ZhciBkLGYsZyxqLGksbyxsPWEuYW9Db2x1bW5zO2lmKGIpZm9yKGQ9Yi5sZW5ndGgtMTswPD1kO2QtLSl7bz1iW2RdO3ZhciBxPW8udGFyZ2V0cyE9PWs/by50YXJnZXRzOm8uYVRhcmdldHM7aC5pc0FycmF5KHEpfHwocT1bcV0pO2Y9MDtmb3IoZz1xLmxlbmd0aDtmPApnO2YrKylpZigibnVtYmVyIj09PXR5cGVvZiBxW2ZdJiYwPD1xW2ZdKXtmb3IoO2wubGVuZ3RoPD1xW2ZdOylGYShhKTtlKHFbZl0sbyl9ZWxzZSBpZigibnVtYmVyIj09PXR5cGVvZiBxW2ZdJiYwPnFbZl0pZShsLmxlbmd0aCtxW2ZdLG8pO2Vsc2UgaWYoInN0cmluZyI9PT10eXBlb2YgcVtmXSl7aj0wO2ZvcihpPWwubGVuZ3RoO2o8aTtqKyspKCJfYWxsIj09cVtmXXx8aChsW2pdLm5UaCkuaGFzQ2xhc3MocVtmXSkpJiZlKGosbyl9fWlmKGMpe2Q9MDtmb3IoYT1jLmxlbmd0aDtkPGE7ZCsrKWUoZCxjW2RdKX19ZnVuY3Rpb24gSyhhLGIsYyxlKXt2YXIgZD1hLmFvRGF0YS5sZW5ndGgsZj1oLmV4dGVuZCghMCx7fSxtLm1vZGVscy5vUm93LHtzcmM6Yz8iZG9tIjoiZGF0YSJ9KTtmLl9hRGF0YT1iO2EuYW9EYXRhLnB1c2goZik7Zm9yKHZhciBiPWEuYW9Db2x1bW5zLGY9MCxnPWIubGVuZ3RoO2Y8ZztmKyspYyYmSWEoYSxkLGYseChhLGQsZikpLGJbZl0uc1R5cGU9bnVsbDthLmFpRGlzcGxheU1hc3Rlci5wdXNoKGQpOwooY3x8IWEub0ZlYXR1cmVzLmJEZWZlclJlbmRlcikmJkphKGEsZCxjLGUpO3JldHVybiBkfWZ1bmN0aW9uIG1hKGEsYil7dmFyIGM7YiBpbnN0YW5jZW9mIGh8fChiPWgoYikpO3JldHVybiBiLm1hcChmdW5jdGlvbihiLGQpe2M9bmEoYSxkKTtyZXR1cm4gSyhhLGMuZGF0YSxkLGMuY2VsbHMpfSl9ZnVuY3Rpb24geChhLGIsYyxlKXt2YXIgZD1hLmlEcmF3LGY9YS5hb0NvbHVtbnNbY10sZz1hLmFvRGF0YVtiXS5fYURhdGEsaj1mLnNEZWZhdWx0Q29udGVudCxjPWYuZm5HZXREYXRhKGcsZSx7c2V0dGluZ3M6YSxyb3c6Yixjb2w6Y30pO2lmKGM9PT1rKXJldHVybiBhLmlEcmF3RXJyb3IhPWQmJm51bGw9PT1qJiYoSShhLDAsIlJlcXVlc3RlZCB1bmtub3duIHBhcmFtZXRlciAiKygiZnVuY3Rpb24iPT10eXBlb2YgZi5tRGF0YT8ie2Z1bmN0aW9ufSI6IiciK2YubURhdGErIiciKSsiIGZvciByb3cgIitiLDQpLGEuaURyYXdFcnJvcj1kKSxqO2lmKChjPT09Z3x8bnVsbD09PWMpJiYKbnVsbCE9PWopYz1qO2Vsc2UgaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBjKXJldHVybiBjLmNhbGwoZyk7cmV0dXJuIG51bGw9PT1jJiYiZGlzcGxheSI9PWU/IiI6Y31mdW5jdGlvbiBJYShhLGIsYyxlKXthLmFvQ29sdW1uc1tjXS5mblNldERhdGEoYS5hb0RhdGFbYl0uX2FEYXRhLGUse3NldHRpbmdzOmEscm93OmIsY29sOmN9KX1mdW5jdGlvbiBLYShhKXtyZXR1cm4gaC5tYXAoYS5tYXRjaCgvKFxcLnxbXlwuXSkrL2cpLGZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoL1xcLi9nLCIuIil9KX1mdW5jdGlvbiBSKGEpe2lmKGguaXNQbGFpbk9iamVjdChhKSl7dmFyIGI9e307aC5lYWNoKGEsZnVuY3Rpb24oYSxjKXtjJiYoYlthXT1SKGMpKX0pO3JldHVybiBmdW5jdGlvbihhLGMsZixnKXt2YXIgaj1iW2NdfHxiLl87cmV0dXJuIGohPT1rP2ooYSxjLGYsZyk6YX19aWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhfTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsCmMsZixnKXtyZXR1cm4gYShiLGMsZixnKX07aWYoInN0cmluZyI9PT10eXBlb2YgYSYmKC0xIT09YS5pbmRleE9mKCIuIil8fC0xIT09YS5pbmRleE9mKCJbIil8fC0xIT09YS5pbmRleE9mKCIoIikpKXt2YXIgYz1mdW5jdGlvbihhLGIsZil7dmFyIGcsajtpZigiIiE9PWYpe2o9S2EoZik7Zm9yKHZhciBpPTAsaD1qLmxlbmd0aDtpPGg7aSsrKXtmPWpbaV0ubWF0Y2goYmEpO2c9altpXS5tYXRjaChUKTtpZihmKXtqW2ldPWpbaV0ucmVwbGFjZShiYSwiIik7IiIhPT1qW2ldJiYoYT1hW2pbaV1dKTtnPVtdO2ouc3BsaWNlKDAsaSsxKTtqPWouam9pbigiLiIpO2k9MDtmb3IoaD1hLmxlbmd0aDtpPGg7aSsrKWcucHVzaChjKGFbaV0sYixqKSk7YT1mWzBdLnN1YnN0cmluZygxLGZbMF0ubGVuZ3RoLTEpO2E9IiI9PT1hP2c6Zy5qb2luKGEpO2JyZWFrfWVsc2UgaWYoZyl7altpXT1qW2ldLnJlcGxhY2UoVCwiIik7YT1hW2pbaV1dKCk7Y29udGludWV9aWYobnVsbD09PWF8fGFbaltpXV09PT0KaylyZXR1cm4gazthPWFbaltpXV19fXJldHVybiBhfTtyZXR1cm4gZnVuY3Rpb24oYixkKXtyZXR1cm4gYyhiLGQsYSl9fXJldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gYlthXX19ZnVuY3Rpb24gUyhhKXtpZihoLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuIFMoYS5fKTtpZihudWxsPT09YSlyZXR1cm4gZnVuY3Rpb24oKXt9O2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlyZXR1cm4gZnVuY3Rpb24oYixlLGQpe2EoYiwic2V0IixlLGQpfTtpZigic3RyaW5nIj09PXR5cGVvZiBhJiYoLTEhPT1hLmluZGV4T2YoIi4iKXx8LTEhPT1hLmluZGV4T2YoIlsiKXx8LTEhPT1hLmluZGV4T2YoIigiKSkpe3ZhciBiPWZ1bmN0aW9uKGEsZSxkKXt2YXIgZD1LYShkKSxmO2Y9ZFtkLmxlbmd0aC0xXTtmb3IodmFyIGcsaixpPTAsaD1kLmxlbmd0aC0xO2k8aDtpKyspe2c9ZFtpXS5tYXRjaChiYSk7aj1kW2ldLm1hdGNoKFQpO2lmKGcpe2RbaV09ZFtpXS5yZXBsYWNlKGJhLCIiKTthW2RbaV1dPVtdOwpmPWQuc2xpY2UoKTtmLnNwbGljZSgwLGkrMSk7Zz1mLmpvaW4oIi4iKTtqPTA7Zm9yKGg9ZS5sZW5ndGg7ajxoO2orKylmPXt9LGIoZixlW2pdLGcpLGFbZFtpXV0ucHVzaChmKTtyZXR1cm59aiYmKGRbaV09ZFtpXS5yZXBsYWNlKFQsIiIpLGE9YVtkW2ldXShlKSk7aWYobnVsbD09PWFbZFtpXV18fGFbZFtpXV09PT1rKWFbZFtpXV09e307YT1hW2RbaV1dfWlmKGYubWF0Y2goVCkpYVtmLnJlcGxhY2UoVCwiIildKGUpO2Vsc2UgYVtmLnJlcGxhY2UoYmEsIiIpXT1lfTtyZXR1cm4gZnVuY3Rpb24oYyxlKXtyZXR1cm4gYihjLGUsYSl9fXJldHVybiBmdW5jdGlvbihiLGUpe2JbYV09ZX19ZnVuY3Rpb24gTGEoYSl7cmV0dXJuIEQoYS5hb0RhdGEsIl9hRGF0YSIpfWZ1bmN0aW9uIG9hKGEpe2EuYW9EYXRhLmxlbmd0aD0wO2EuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aD0wO2EuYWlEaXNwbGF5Lmxlbmd0aD0wfWZ1bmN0aW9uIHBhKGEsYixjKXtmb3IodmFyIGU9LTEsZD0wLGY9YS5sZW5ndGg7ZDwKZjtkKyspYVtkXT09Yj9lPWQ6YVtkXT5iJiZhW2RdLS07IC0xIT1lJiZjPT09ayYmYS5zcGxpY2UoZSwxKX1mdW5jdGlvbiBjYShhLGIsYyxlKXt2YXIgZD1hLmFvRGF0YVtiXSxmLGc9ZnVuY3Rpb24oYyxmKXtmb3IoO2MuY2hpbGROb2Rlcy5sZW5ndGg7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdENoaWxkKTtjLmlubmVySFRNTD14KGEsYixmLCJkaXNwbGF5Iil9O2lmKCJkb20iPT09Y3x8KCFjfHwiYXV0byI9PT1jKSYmImRvbSI9PT1kLnNyYylkLl9hRGF0YT1uYShhLGQsZSxlPT09az9rOmQuX2FEYXRhKS5kYXRhO2Vsc2V7dmFyIGo9ZC5hbkNlbGxzO2lmKGopaWYoZSE9PWspZyhqW2VdLGUpO2Vsc2V7Yz0wO2ZvcihmPWoubGVuZ3RoO2M8ZjtjKyspZyhqW2NdLGMpfX1kLl9hU29ydERhdGE9bnVsbDtkLl9hRmlsdGVyRGF0YT1udWxsO2c9YS5hb0NvbHVtbnM7aWYoZSE9PWspZ1tlXS5zVHlwZT1udWxsO2Vsc2V7Yz0wO2ZvcihmPWcubGVuZ3RoO2M8ZjtjKyspZ1tjXS5zVHlwZT1udWxsOwpNYShkKX19ZnVuY3Rpb24gbmEoYSxiLGMsZSl7dmFyIGQ9W10sZj1iLmZpcnN0Q2hpbGQsZyxqPTAsaSxvPWEuYW9Db2x1bW5zLGw9YS5fcm93UmVhZE9iamVjdCxlPWV8fGw/e306W10scT1mdW5jdGlvbihhLGIpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpe3ZhciBjPWEuaW5kZXhPZigiQCIpOy0xIT09YyYmKGM9YS5zdWJzdHJpbmcoYysxKSxTKGEpKGUsYi5nZXRBdHRyaWJ1dGUoYykpKX19LGE9ZnVuY3Rpb24oYSl7aWYoYz09PWt8fGM9PT1qKWc9b1tqXSxpPWgudHJpbShhLmlubmVySFRNTCksZyYmZy5fYkF0dHJTcmM/KFMoZy5tRGF0YS5fKShlLGkpLHEoZy5tRGF0YS5zb3J0LGEpLHEoZy5tRGF0YS50eXBlLGEpLHEoZy5tRGF0YS5maWx0ZXIsYSkpOmw/KGcuX3NldHRlcnx8KGcuX3NldHRlcj1TKGcubURhdGEpKSxnLl9zZXR0ZXIoZSxpKSk6ZVtqXT1pO2orK307aWYoZilmb3IoO2Y7KXtiPWYubm9kZU5hbWUudG9VcHBlckNhc2UoKTtpZigiVEQiPT1ifHwiVEgiPT1iKWEoZiksCmQucHVzaChmKTtmPWYubmV4dFNpYmxpbmd9ZWxzZXtkPWIuYW5DZWxscztmPTA7Zm9yKGI9ZC5sZW5ndGg7ZjxiO2YrKylhKGRbZl0pfXJldHVybntkYXRhOmUsY2VsbHM6ZH19ZnVuY3Rpb24gSmEoYSxiLGMsZSl7dmFyIGQ9YS5hb0RhdGFbYl0sZj1kLl9hRGF0YSxnPVtdLGosaSxoLGwscTtpZihudWxsPT09ZC5uVHIpe2o9Y3x8US5jcmVhdGVFbGVtZW50KCJ0ciIpO2QublRyPWo7ZC5hbkNlbGxzPWc7ai5fRFRfUm93SW5kZXg9YjtNYShkKTtsPTA7Zm9yKHE9YS5hb0NvbHVtbnMubGVuZ3RoO2w8cTtsKyspe2g9YS5hb0NvbHVtbnNbbF07aT1jP2VbbF06US5jcmVhdGVFbGVtZW50KGguc0NlbGxUeXBlKTtnLnB1c2goaSk7aWYoIWN8fGgubVJlbmRlcnx8aC5tRGF0YSE9PWwpaS5pbm5lckhUTUw9eChhLGIsbCwiZGlzcGxheSIpO2guc0NsYXNzJiYoaS5jbGFzc05hbWUrPSIgIitoLnNDbGFzcyk7aC5iVmlzaWJsZSYmIWM/ai5hcHBlbmRDaGlsZChpKTohaC5iVmlzaWJsZSYmYyYmCmkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChpKTtoLmZuQ3JlYXRlZENlbGwmJmguZm5DcmVhdGVkQ2VsbC5jYWxsKGEub0luc3RhbmNlLGkseChhLGIsbCksZixiLGwpfXcoYSwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLG51bGwsW2osZixiXSl9ZC5uVHIuc2V0QXR0cmlidXRlKCJyb2xlIiwicm93Iil9ZnVuY3Rpb24gTWEoYSl7dmFyIGI9YS5uVHIsYz1hLl9hRGF0YTtpZihiKXtjLkRUX1Jvd0lkJiYoYi5pZD1jLkRUX1Jvd0lkKTtpZihjLkRUX1Jvd0NsYXNzKXt2YXIgZT1jLkRUX1Jvd0NsYXNzLnNwbGl0KCIgIik7YS5fX3Jvd2M9YS5fX3Jvd2M/TmEoYS5fX3Jvd2MuY29uY2F0KGUpKTplO2goYikucmVtb3ZlQ2xhc3MoYS5fX3Jvd2Muam9pbigiICIpKS5hZGRDbGFzcyhjLkRUX1Jvd0NsYXNzKX1jLkRUX1Jvd0F0dHImJmgoYikuYXR0cihjLkRUX1Jvd0F0dHIpO2MuRFRfUm93RGF0YSYmaChiKS5kYXRhKGMuRFRfUm93RGF0YSl9fWZ1bmN0aW9uIGpiKGEpe3ZhciBiLGMsZSxkLApmLGc9YS5uVEhlYWQsaj1hLm5URm9vdCxpPTA9PT1oKCJ0aCwgdGQiLGcpLmxlbmd0aCxvPWEub0NsYXNzZXMsbD1hLmFvQ29sdW1ucztpJiYoZD1oKCI8dHIvPiIpLmFwcGVuZFRvKGcpKTtiPTA7Zm9yKGM9bC5sZW5ndGg7YjxjO2IrKylmPWxbYl0sZT1oKGYublRoKS5hZGRDbGFzcyhmLnNDbGFzcyksaSYmZS5hcHBlbmRUbyhkKSxhLm9GZWF0dXJlcy5iU29ydCYmKGUuYWRkQ2xhc3MoZi5zU29ydGluZ0NsYXNzKSwhMSE9PWYuYlNvcnRhYmxlJiYoZS5hdHRyKCJ0YWJpbmRleCIsYS5pVGFiSW5kZXgpLmF0dHIoImFyaWEtY29udHJvbHMiLGEuc1RhYmxlSWQpLE9hKGEsZi5uVGgsYikpKSxmLnNUaXRsZSE9ZS5odG1sKCkmJmUuaHRtbChmLnNUaXRsZSksUGEoYSwiaGVhZGVyIikoYSxlLGYsbyk7aSYmZGEoYS5hb0hlYWRlcixnKTtoKGcpLmZpbmQoIj50ciIpLmF0dHIoInJvbGUiLCJyb3ciKTtoKGcpLmZpbmQoIj50cj50aCwgPnRyPnRkIikuYWRkQ2xhc3Moby5zSGVhZGVyVEgpOwpoKGopLmZpbmQoIj50cj50aCwgPnRyPnRkIikuYWRkQ2xhc3Moby5zRm9vdGVyVEgpO2lmKG51bGwhPT1qKXthPWEuYW9Gb290ZXJbMF07Yj0wO2ZvcihjPWEubGVuZ3RoO2I8YztiKyspZj1sW2JdLGYublRmPWFbYl0uY2VsbCxmLnNDbGFzcyYmaChmLm5UZikuYWRkQ2xhc3MoZi5zQ2xhc3MpfX1mdW5jdGlvbiBlYShhLGIsYyl7dmFyIGUsZCxmLGc9W10saj1bXSxpPWEuYW9Db2x1bW5zLmxlbmd0aCxvO2lmKGIpe2M9PT1rJiYoYz0hMSk7ZT0wO2ZvcihkPWIubGVuZ3RoO2U8ZDtlKyspe2dbZV09YltlXS5zbGljZSgpO2dbZV0ublRyPWJbZV0ublRyO2ZvcihmPWktMTswPD1mO2YtLSkhYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJiFjJiZnW2VdLnNwbGljZShmLDEpO2oucHVzaChbXSl9ZT0wO2ZvcihkPWcubGVuZ3RoO2U8ZDtlKyspe2lmKGE9Z1tlXS5uVHIpZm9yKDtmPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChmKTtmPTA7Zm9yKGI9Z1tlXS5sZW5ndGg7ZjxiO2YrKylpZihvPQppPTEsaltlXVtmXT09PWspe2EuYXBwZW5kQ2hpbGQoZ1tlXVtmXS5jZWxsKTtmb3IoaltlXVtmXT0xO2dbZStpXSE9PWsmJmdbZV1bZl0uY2VsbD09Z1tlK2ldW2ZdLmNlbGw7KWpbZStpXVtmXT0xLGkrKztmb3IoO2dbZV1bZitvXSE9PWsmJmdbZV1bZl0uY2VsbD09Z1tlXVtmK29dLmNlbGw7KXtmb3IoYz0wO2M8aTtjKyspaltlK2NdW2Yrb109MTtvKyt9aChnW2VdW2ZdLmNlbGwpLmF0dHIoInJvd3NwYW4iLGkpLmF0dHIoImNvbHNwYW4iLG8pfX19fWZ1bmN0aW9uIE0oYSl7dmFyIGI9dyhhLCJhb1ByZURyYXdDYWxsYmFjayIsInByZURyYXciLFthXSk7aWYoLTEhPT1oLmluQXJyYXkoITEsYikpQyhhLCExKTtlbHNle3ZhciBiPVtdLGM9MCxlPWEuYXNTdHJpcGVDbGFzc2VzLGQ9ZS5sZW5ndGgsZj1hLm9MYW5ndWFnZSxnPWEuaUluaXREaXNwbGF5U3RhcnQsaj0ic3NwIj09QihhKSxpPWEuYWlEaXNwbGF5O2EuYkRyYXdpbmc9ITA7ZyE9PWsmJi0xIT09ZyYmKGEuX2lEaXNwbGF5U3RhcnQ9Cmo/ZzpnPj1hLmZuUmVjb3Jkc0Rpc3BsYXkoKT8wOmcsYS5pSW5pdERpc3BsYXlTdGFydD0tMSk7dmFyIGc9YS5faURpc3BsYXlTdGFydCxvPWEuZm5EaXNwbGF5RW5kKCk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3KyssQyhhLCExKTtlbHNlIGlmKGope2lmKCFhLmJEZXN0cm95aW5nJiYha2IoYSkpcmV0dXJufWVsc2UgYS5pRHJhdysrO2lmKDAhPT1pLmxlbmd0aCl7Zj1qP2EuYW9EYXRhLmxlbmd0aDpvO2ZvcihqPWo/MDpnO2o8ZjtqKyspe3ZhciBsPWlbal0scT1hLmFvRGF0YVtsXTtudWxsPT09cS5uVHImJkphKGEsbCk7bD1xLm5UcjtpZigwIT09ZCl7dmFyIG49ZVtjJWRdO3EuX3NSb3dTdHJpcGUhPW4mJihoKGwpLnJlbW92ZUNsYXNzKHEuX3NSb3dTdHJpcGUpLmFkZENsYXNzKG4pLHEuX3NSb3dTdHJpcGU9bil9dyhhLCJhb1Jvd0NhbGxiYWNrIixudWxsLFtsLHEuX2FEYXRhLGMsal0pO2IucHVzaChsKTtjKyt9fWVsc2UgYz1mLnNaZXJvUmVjb3JkcywKMT09YS5pRHJhdyYmImFqYXgiPT1CKGEpP2M9Zi5zTG9hZGluZ1JlY29yZHM6Zi5zRW1wdHlUYWJsZSYmMD09PWEuZm5SZWNvcmRzVG90YWwoKSYmKGM9Zi5zRW1wdHlUYWJsZSksYlswXT1oKCI8dHIvPiIseyJjbGFzcyI6ZD9lWzBdOiIifSkuYXBwZW5kKGgoIjx0ZCAvPiIse3ZhbGlnbjoidG9wIixjb2xTcGFuOmFhKGEpLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUm93RW1wdHl9KS5odG1sKGMpKVswXTt3KGEsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtoKGEublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSxMYShhKSxnLG8saV0pO3coYSwiYW9Gb290ZXJDYWxsYmFjayIsImZvb3RlciIsW2goYS5uVEZvb3QpLmNoaWxkcmVuKCJ0ciIpWzBdLExhKGEpLGcsbyxpXSk7ZT1oKGEublRCb2R5KTtlLmNoaWxkcmVuKCkuZGV0YWNoKCk7ZS5hcHBlbmQoaChiKSk7dyhhLCJhb0RyYXdDYWxsYmFjayIsImRyYXciLFthXSk7YS5iU29ydGVkPSExO2EuYkZpbHRlcmVkPSExO2EuYkRyYXdpbmc9CiExfX1mdW5jdGlvbiBOKGEsYil7dmFyIGM9YS5vRmVhdHVyZXMsZT1jLmJGaWx0ZXI7Yy5iU29ydCYmbGIoYSk7ZT9mYShhLGEub1ByZXZpb3VzU2VhcmNoKTphLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyEwIT09YiYmKGEuX2lEaXNwbGF5U3RhcnQ9MCk7YS5fZHJhd0hvbGQ9YjtNKGEpO2EuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIG1iKGEpe3ZhciBiPWEub0NsYXNzZXMsYz1oKGEublRhYmxlKSxjPWgoIjxkaXYvPiIpLmluc2VydEJlZm9yZShjKSxlPWEub0ZlYXR1cmVzLGQ9aCgiPGRpdi8+Iix7aWQ6YS5zVGFibGVJZCsiX3dyYXBwZXIiLCJjbGFzcyI6Yi5zV3JhcHBlcisoYS5uVEZvb3Q/IiI6IiAiK2Iuc05vRm9vdGVyKX0pO2EubkhvbGRpbmc9Y1swXTthLm5UYWJsZVdyYXBwZXI9ZFswXTthLm5UYWJsZVJlaW5zZXJ0QmVmb3JlPWEublRhYmxlLm5leHRTaWJsaW5nO2Zvcih2YXIgZj1hLnNEb20uc3BsaXQoIiIpLGcsaixpLG8sbCxxLG49MDtuPGYubGVuZ3RoO24rKyl7Zz0KbnVsbDtqPWZbbl07aWYoIjwiPT1qKXtpPWgoIjxkaXYvPiIpWzBdO289ZltuKzFdO2lmKCInIj09b3x8JyInPT1vKXtsPSIiO2ZvcihxPTI7ZltuK3FdIT1vOylsKz1mW24rcV0scSsrOyJIIj09bD9sPWIuc0pVSUhlYWRlcjoiRiI9PWwmJihsPWIuc0pVSUZvb3Rlcik7LTEhPWwuaW5kZXhPZigiLiIpPyhvPWwuc3BsaXQoIi4iKSxpLmlkPW9bMF0uc3Vic3RyKDEsb1swXS5sZW5ndGgtMSksaS5jbGFzc05hbWU9b1sxXSk6IiMiPT1sLmNoYXJBdCgwKT9pLmlkPWwuc3Vic3RyKDEsbC5sZW5ndGgtMSk6aS5jbGFzc05hbWU9bDtuKz1xfWQuYXBwZW5kKGkpO2Q9aChpKX1lbHNlIGlmKCI+Ij09ailkPWQucGFyZW50KCk7ZWxzZSBpZigibCI9PWomJmUuYlBhZ2luYXRlJiZlLmJMZW5ndGhDaGFuZ2UpZz1uYihhKTtlbHNlIGlmKCJmIj09aiYmZS5iRmlsdGVyKWc9b2IoYSk7ZWxzZSBpZigiciI9PWomJmUuYlByb2Nlc3NpbmcpZz1wYihhKTtlbHNlIGlmKCJ0Ij09ailnPXFiKGEpO2Vsc2UgaWYoImkiPT0KaiYmZS5iSW5mbylnPXJiKGEpO2Vsc2UgaWYoInAiPT1qJiZlLmJQYWdpbmF0ZSlnPXNiKGEpO2Vsc2UgaWYoMCE9PW0uZXh0LmZlYXR1cmUubGVuZ3RoKXtpPW0uZXh0LmZlYXR1cmU7cT0wO2ZvcihvPWkubGVuZ3RoO3E8bztxKyspaWYoaj09aVtxXS5jRmVhdHVyZSl7Zz1pW3FdLmZuSW5pdChhKTticmVha319ZyYmKGk9YS5hYW5GZWF0dXJlcyxpW2pdfHwoaVtqXT1bXSksaVtqXS5wdXNoKGcpLGQuYXBwZW5kKGcpKX1jLnJlcGxhY2VXaXRoKGQpfWZ1bmN0aW9uIGRhKGEsYil7dmFyIGM9aChiKS5jaGlsZHJlbigidHIiKSxlLGQsZixnLGosaSxvLGwscSxuO2Euc3BsaWNlKDAsYS5sZW5ndGgpO2Y9MDtmb3IoaT1jLmxlbmd0aDtmPGk7ZisrKWEucHVzaChbXSk7Zj0wO2ZvcihpPWMubGVuZ3RoO2Y8aTtmKyspe2U9Y1tmXTtmb3IoZD1lLmZpcnN0Q2hpbGQ7ZDspe2lmKCJURCI9PWQubm9kZU5hbWUudG9VcHBlckNhc2UoKXx8IlRIIj09ZC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpKXtsPQoxKmQuZ2V0QXR0cmlidXRlKCJjb2xzcGFuIik7cT0xKmQuZ2V0QXR0cmlidXRlKCJyb3dzcGFuIik7bD0hbHx8MD09PWx8fDE9PT1sPzE6bDtxPSFxfHwwPT09cXx8MT09PXE/MTpxO2c9MDtmb3Ioaj1hW2ZdO2pbZ107KWcrKztvPWc7bj0xPT09bD8hMDohMTtmb3Ioaj0wO2o8bDtqKyspZm9yKGc9MDtnPHE7ZysrKWFbZitnXVtvK2pdPXtjZWxsOmQsdW5pcXVlOm59LGFbZitnXS5uVHI9ZX1kPWQubmV4dFNpYmxpbmd9fX1mdW5jdGlvbiBxYShhLGIsYyl7dmFyIGU9W107Y3x8KGM9YS5hb0hlYWRlcixiJiYoYz1bXSxkYShjLGIpKSk7Zm9yKHZhciBiPTAsZD1jLmxlbmd0aDtiPGQ7YisrKWZvcih2YXIgZj0wLGc9Y1tiXS5sZW5ndGg7ZjxnO2YrKylpZihjW2JdW2ZdLnVuaXF1ZSYmKCFlW2ZdfHwhYS5iU29ydENlbGxzVG9wKSllW2ZdPWNbYl1bZl0uY2VsbDtyZXR1cm4gZX1mdW5jdGlvbiByYShhLGIsYyl7dyhhLCJhb1NlcnZlclBhcmFtcyIsInNlcnZlclBhcmFtcyIsW2JdKTsKaWYoYiYmaC5pc0FycmF5KGIpKXt2YXIgZT17fSxkPS8oLio/KVxbXF0kLztoLmVhY2goYixmdW5jdGlvbihhLGIpe3ZhciBjPWIubmFtZS5tYXRjaChkKTtjPyhjPWNbMF0sZVtjXXx8KGVbY109W10pLGVbY10ucHVzaChiLnZhbHVlKSk6ZVtiLm5hbWVdPWIudmFsdWV9KTtiPWV9dmFyIGYsZz1hLmFqYXgsaj1hLm9JbnN0YW5jZSxpPWZ1bmN0aW9uKGIpe3coYSxudWxsLCJ4aHIiLFthLGIsYS5qcVhIUl0pO2MoYil9O2lmKGguaXNQbGFpbk9iamVjdChnKSYmZy5kYXRhKXtmPWcuZGF0YTt2YXIgbz1oLmlzRnVuY3Rpb24oZik/ZihiLGEpOmYsYj1oLmlzRnVuY3Rpb24oZikmJm8/bzpoLmV4dGVuZCghMCxiLG8pO2RlbGV0ZSBnLmRhdGF9bz17ZGF0YTpiLHN1Y2Nlc3M6ZnVuY3Rpb24oYil7dmFyIGM9Yi5lcnJvcnx8Yi5zRXJyb3I7YyYmSShhLDAsYyk7YS5qc29uPWI7aShiKX0sZGF0YVR5cGU6Impzb24iLGNhY2hlOiExLHR5cGU6YS5zU2VydmVyTWV0aG9kLGVycm9yOmZ1bmN0aW9uKGIsCmMpe3ZhciBmPXcoYSxudWxsLCJ4aHIiLFthLG51bGwsYS5qcVhIUl0pOy0xPT09aC5pbkFycmF5KCEwLGYpJiYoInBhcnNlcmVycm9yIj09Yz9JKGEsMCwiSW52YWxpZCBKU09OIHJlc3BvbnNlIiwxKTo0PT09Yi5yZWFkeVN0YXRlJiZJKGEsMCwiQWpheCBlcnJvciIsNykpO0MoYSwhMSl9fTthLm9BamF4RGF0YT1iO3coYSxudWxsLCJwcmVYaHIiLFthLGJdKTthLmZuU2VydmVyRGF0YT9hLmZuU2VydmVyRGF0YS5jYWxsKGosYS5zQWpheFNvdXJjZSxoLm1hcChiLGZ1bmN0aW9uKGEsYil7cmV0dXJue25hbWU6Yix2YWx1ZTphfX0pLGksYSk6YS5zQWpheFNvdXJjZXx8InN0cmluZyI9PT10eXBlb2YgZz9hLmpxWEhSPWguYWpheChoLmV4dGVuZChvLHt1cmw6Z3x8YS5zQWpheFNvdXJjZX0pKTpoLmlzRnVuY3Rpb24oZyk/YS5qcVhIUj1nLmNhbGwoaixiLGksYSk6KGEuanFYSFI9aC5hamF4KGguZXh0ZW5kKG8sZykpLGcuZGF0YT1mKX1mdW5jdGlvbiBrYihhKXtyZXR1cm4gYS5iQWpheERhdGFHZXQ/CihhLmlEcmF3KyssQyhhLCEwKSxyYShhLHRiKGEpLGZ1bmN0aW9uKGIpe3ViKGEsYil9KSwhMSk6ITB9ZnVuY3Rpb24gdGIoYSl7dmFyIGI9YS5hb0NvbHVtbnMsYz1iLmxlbmd0aCxlPWEub0ZlYXR1cmVzLGQ9YS5vUHJldmlvdXNTZWFyY2gsZj1hLmFvUHJlU2VhcmNoQ29scyxnLGo9W10saSxvLGwscT1VKGEpO2c9YS5faURpc3BsYXlTdGFydDtpPSExIT09ZS5iUGFnaW5hdGU/YS5faURpc3BsYXlMZW5ndGg6LTE7dmFyIG49ZnVuY3Rpb24oYSxiKXtqLnB1c2goe25hbWU6YSx2YWx1ZTpifSl9O24oInNFY2hvIixhLmlEcmF3KTtuKCJpQ29sdW1ucyIsYyk7bigic0NvbHVtbnMiLEQoYiwic05hbWUiKS5qb2luKCIsIikpO24oImlEaXNwbGF5U3RhcnQiLGcpO24oImlEaXNwbGF5TGVuZ3RoIixpKTt2YXIgaz17ZHJhdzphLmlEcmF3LGNvbHVtbnM6W10sb3JkZXI6W10sc3RhcnQ6ZyxsZW5ndGg6aSxzZWFyY2g6e3ZhbHVlOmQuc1NlYXJjaCxyZWdleDpkLmJSZWdleH19O2ZvcihnPQowO2c8YztnKyspbz1iW2ddLGw9ZltnXSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBvLm1EYXRhPyJmdW5jdGlvbiI6by5tRGF0YSxrLmNvbHVtbnMucHVzaCh7ZGF0YTppLG5hbWU6by5zTmFtZSxzZWFyY2hhYmxlOm8uYlNlYXJjaGFibGUsb3JkZXJhYmxlOm8uYlNvcnRhYmxlLHNlYXJjaDp7dmFsdWU6bC5zU2VhcmNoLHJlZ2V4OmwuYlJlZ2V4fX0pLG4oIm1EYXRhUHJvcF8iK2csaSksZS5iRmlsdGVyJiYobigic1NlYXJjaF8iK2csbC5zU2VhcmNoKSxuKCJiUmVnZXhfIitnLGwuYlJlZ2V4KSxuKCJiU2VhcmNoYWJsZV8iK2csby5iU2VhcmNoYWJsZSkpLGUuYlNvcnQmJm4oImJTb3J0YWJsZV8iK2csby5iU29ydGFibGUpO2UuYkZpbHRlciYmKG4oInNTZWFyY2giLGQuc1NlYXJjaCksbigiYlJlZ2V4IixkLmJSZWdleCkpO2UuYlNvcnQmJihoLmVhY2gocSxmdW5jdGlvbihhLGIpe2sub3JkZXIucHVzaCh7Y29sdW1uOmIuY29sLGRpcjpiLmRpcn0pO24oImlTb3J0Q29sXyIrYSxiLmNvbCk7Cm4oInNTb3J0RGlyXyIrYSxiLmRpcil9KSxuKCJpU29ydGluZ0NvbHMiLHEubGVuZ3RoKSk7Yj1tLmV4dC5sZWdhY3kuYWpheDtyZXR1cm4gbnVsbD09PWI/YS5zQWpheFNvdXJjZT9qOms6Yj9qOmt9ZnVuY3Rpb24gdWIoYSxiKXt2YXIgYz1zYShhLGIpLGU9Yi5zRWNobyE9PWs/Yi5zRWNobzpiLmRyYXcsZD1iLmlUb3RhbFJlY29yZHMhPT1rP2IuaVRvdGFsUmVjb3JkczpiLnJlY29yZHNUb3RhbCxmPWIuaVRvdGFsRGlzcGxheVJlY29yZHMhPT1rP2IuaVRvdGFsRGlzcGxheVJlY29yZHM6Yi5yZWNvcmRzRmlsdGVyZWQ7aWYoZSl7aWYoMSplPGEuaURyYXcpcmV0dXJuO2EuaURyYXc9MSplfW9hKGEpO2EuX2lSZWNvcmRzVG90YWw9cGFyc2VJbnQoZCwxMCk7YS5faVJlY29yZHNEaXNwbGF5PXBhcnNlSW50KGYsMTApO2U9MDtmb3IoZD1jLmxlbmd0aDtlPGQ7ZSsrKUsoYSxjW2VdKTthLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpO2EuYkFqYXhEYXRhR2V0PSExOwpNKGEpO2EuX2JJbml0Q29tcGxldGV8fHRhKGEsYik7YS5iQWpheERhdGFHZXQ9ITA7QyhhLCExKX1mdW5jdGlvbiBzYShhLGIpe3ZhciBjPWguaXNQbGFpbk9iamVjdChhLmFqYXgpJiZhLmFqYXguZGF0YVNyYyE9PWs/YS5hamF4LmRhdGFTcmM6YS5zQWpheERhdGFQcm9wO3JldHVybiJkYXRhIj09PWM/Yi5hYURhdGF8fGJbY106IiIhPT1jP1IoYykoYik6Yn1mdW5jdGlvbiBvYihhKXt2YXIgYj1hLm9DbGFzc2VzLGM9YS5zVGFibGVJZCxlPWEub0xhbmd1YWdlLGQ9YS5vUHJldmlvdXNTZWFyY2gsZj1hLmFhbkZlYXR1cmVzLGc9JzxpbnB1dCB0eXBlPSJzZWFyY2giIGNsYXNzPSInK2Iuc0ZpbHRlcklucHV0KyciLz4nLGo9ZS5zU2VhcmNoLGo9ai5tYXRjaCgvX0lOUFVUXy8pP2oucmVwbGFjZSgiX0lOUFVUXyIsZyk6aitnLGI9aCgiPGRpdi8+Iix7aWQ6IWYuZj9jKyJfZmlsdGVyIjpudWxsLCJjbGFzcyI6Yi5zRmlsdGVyfSkuYXBwZW5kKGgoIjxsYWJlbC8+IikuYXBwZW5kKGopKSwKZj1mdW5jdGlvbigpe3ZhciBiPSF0aGlzLnZhbHVlPyIiOnRoaXMudmFsdWU7YiE9ZC5zU2VhcmNoJiYoZmEoYSx7c1NlYXJjaDpiLGJSZWdleDpkLmJSZWdleCxiU21hcnQ6ZC5iU21hcnQsYkNhc2VJbnNlbnNpdGl2ZTpkLmJDYXNlSW5zZW5zaXRpdmV9KSxhLl9pRGlzcGxheVN0YXJ0PTAsTShhKSl9LGc9bnVsbCE9PWEuc2VhcmNoRGVsYXk/YS5zZWFyY2hEZWxheToic3NwIj09PUIoYSk/NDAwOjAsaT1oKCJpbnB1dCIsYikudmFsKGQuc1NlYXJjaCkuYXR0cigicGxhY2Vob2xkZXIiLGUuc1NlYXJjaFBsYWNlaG9sZGVyKS5iaW5kKCJrZXl1cC5EVCBzZWFyY2guRFQgaW5wdXQuRFQgcGFzdGUuRFQgY3V0LkRUIixnP3VhKGYsZyk6ZikuYmluZCgia2V5cHJlc3MuRFQiLGZ1bmN0aW9uKGEpe2lmKDEzPT1hLmtleUNvZGUpcmV0dXJuITF9KS5hdHRyKCJhcmlhLWNvbnRyb2xzIixjKTtoKGEublRhYmxlKS5vbigic2VhcmNoLmR0LkRUIixmdW5jdGlvbihiLGMpe2lmKGE9PT1jKXRyeXtpWzBdIT09ClEuYWN0aXZlRWxlbWVudCYmaS52YWwoZC5zU2VhcmNoKX1jYXRjaChmKXt9fSk7cmV0dXJuIGJbMF19ZnVuY3Rpb24gZmEoYSxiLGMpe3ZhciBlPWEub1ByZXZpb3VzU2VhcmNoLGQ9YS5hb1ByZVNlYXJjaENvbHMsZj1mdW5jdGlvbihhKXtlLnNTZWFyY2g9YS5zU2VhcmNoO2UuYlJlZ2V4PWEuYlJlZ2V4O2UuYlNtYXJ0PWEuYlNtYXJ0O2UuYkNhc2VJbnNlbnNpdGl2ZT1hLmJDYXNlSW5zZW5zaXRpdmV9O0hhKGEpO2lmKCJzc3AiIT1CKGEpKXt2YihhLGIuc1NlYXJjaCxjLGIuYkVzY2FwZVJlZ2V4IT09az8hYi5iRXNjYXBlUmVnZXg6Yi5iUmVnZXgsYi5iU21hcnQsYi5iQ2FzZUluc2Vuc2l0aXZlKTtmKGIpO2ZvcihiPTA7YjxkLmxlbmd0aDtiKyspd2IoYSxkW2JdLnNTZWFyY2gsYixkW2JdLmJFc2NhcGVSZWdleCE9PWs/IWRbYl0uYkVzY2FwZVJlZ2V4OmRbYl0uYlJlZ2V4LGRbYl0uYlNtYXJ0LGRbYl0uYkNhc2VJbnNlbnNpdGl2ZSk7eGIoYSl9ZWxzZSBmKGIpO2EuYkZpbHRlcmVkPQohMDt3KGEsbnVsbCwic2VhcmNoIixbYV0pfWZ1bmN0aW9uIHhiKGEpe2Zvcih2YXIgYj1tLmV4dC5zZWFyY2gsYz1hLmFpRGlzcGxheSxlLGQsZj0wLGc9Yi5sZW5ndGg7ZjxnO2YrKyl7Zm9yKHZhciBqPVtdLGk9MCxoPWMubGVuZ3RoO2k8aDtpKyspZD1jW2ldLGU9YS5hb0RhdGFbZF0sYltmXShhLGUuX2FGaWx0ZXJEYXRhLGQsZS5fYURhdGEsaSkmJmoucHVzaChkKTtjLmxlbmd0aD0wO2MucHVzaC5hcHBseShjLGopfX1mdW5jdGlvbiB3YihhLGIsYyxlLGQsZil7aWYoIiIhPT1iKWZvcih2YXIgZz1hLmFpRGlzcGxheSxlPVFhKGIsZSxkLGYpLGQ9Zy5sZW5ndGgtMTswPD1kO2QtLSliPWEuYW9EYXRhW2dbZF1dLl9hRmlsdGVyRGF0YVtjXSxlLnRlc3QoYil8fGcuc3BsaWNlKGQsMSl9ZnVuY3Rpb24gdmIoYSxiLGMsZSxkLGYpe3ZhciBlPVFhKGIsZSxkLGYpLGQ9YS5vUHJldmlvdXNTZWFyY2guc1NlYXJjaCxmPWEuYWlEaXNwbGF5TWFzdGVyLGc7MCE9PW0uZXh0LnNlYXJjaC5sZW5ndGgmJgooYz0hMCk7Zz15YihhKTtpZigwPj1iLmxlbmd0aClhLmFpRGlzcGxheT1mLnNsaWNlKCk7ZWxzZXtpZihnfHxjfHxkLmxlbmd0aD5iLmxlbmd0aHx8MCE9PWIuaW5kZXhPZihkKXx8YS5iU29ydGVkKWEuYWlEaXNwbGF5PWYuc2xpY2UoKTtiPWEuYWlEaXNwbGF5O2ZvcihjPWIubGVuZ3RoLTE7MDw9YztjLS0pZS50ZXN0KGEuYW9EYXRhW2JbY11dLl9zRmlsdGVyUm93KXx8Yi5zcGxpY2UoYywxKX19ZnVuY3Rpb24gUWEoYSxiLGMsZSl7YT1iP2E6dmEoYSk7YyYmKGE9Il4oPz0uKj8iK2gubWFwKGEubWF0Y2goLyJbXiJdKyJ8W14gXSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7aWYoJyInPT09YS5jaGFyQXQoMCkpdmFyIGI9YS5tYXRjaCgvXiIoLiopIiQvKSxhPWI/YlsxXTphO3JldHVybiBhLnJlcGxhY2UoJyInLCIiKX0pLmpvaW4oIikoPz0uKj8iKSsiKS4qJCIpO3JldHVybiBSZWdFeHAoYSxlPyJpIjoiIil9ZnVuY3Rpb24gdmEoYSl7cmV0dXJuIGEucmVwbGFjZShZYiwiXFwkMSIpfQpmdW5jdGlvbiB5YihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjLGUsZCxmLGcsaixpLGgsbD1tLmV4dC50eXBlLnNlYXJjaDtjPSExO2U9MDtmb3IoZj1hLmFvRGF0YS5sZW5ndGg7ZTxmO2UrKylpZihoPWEuYW9EYXRhW2VdLCFoLl9hRmlsdGVyRGF0YSl7aj1bXTtkPTA7Zm9yKGc9Yi5sZW5ndGg7ZDxnO2QrKyljPWJbZF0sYy5iU2VhcmNoYWJsZT8oaT14KGEsZSxkLCJmaWx0ZXIiKSxsW2Muc1R5cGVdJiYoaT1sW2Muc1R5cGVdKGkpKSxudWxsPT09aSYmKGk9IiIpLCJzdHJpbmciIT09dHlwZW9mIGkmJmkudG9TdHJpbmcmJihpPWkudG9TdHJpbmcoKSkpOmk9IiIsaS5pbmRleE9mJiYtMSE9PWkuaW5kZXhPZigiJiIpJiYod2EuaW5uZXJIVE1MPWksaT1aYj93YS50ZXh0Q29udGVudDp3YS5pbm5lclRleHQpLGkucmVwbGFjZSYmKGk9aS5yZXBsYWNlKC9bXHJcbl0vZywiIikpLGoucHVzaChpKTtoLl9hRmlsdGVyRGF0YT1qO2guX3NGaWx0ZXJSb3c9ai5qb2luKCIgICIpO2M9ITB9cmV0dXJuIGN9CmZ1bmN0aW9uIHpiKGEpe3JldHVybntzZWFyY2g6YS5zU2VhcmNoLHNtYXJ0OmEuYlNtYXJ0LHJlZ2V4OmEuYlJlZ2V4LGNhc2VJbnNlbnNpdGl2ZTphLmJDYXNlSW5zZW5zaXRpdmV9fWZ1bmN0aW9uIEFiKGEpe3JldHVybntzU2VhcmNoOmEuc2VhcmNoLGJTbWFydDphLnNtYXJ0LGJSZWdleDphLnJlZ2V4LGJDYXNlSW5zZW5zaXRpdmU6YS5jYXNlSW5zZW5zaXRpdmV9fWZ1bmN0aW9uIHJiKGEpe3ZhciBiPWEuc1RhYmxlSWQsYz1hLmFhbkZlYXR1cmVzLmksZT1oKCI8ZGl2Lz4iLHsiY2xhc3MiOmEub0NsYXNzZXMuc0luZm8saWQ6IWM/YisiX2luZm8iOm51bGx9KTtjfHwoYS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpCYixzTmFtZToiaW5mb3JtYXRpb24ifSksZS5hdHRyKCJyb2xlIiwic3RhdHVzIikuYXR0cigiYXJpYS1saXZlIiwicG9saXRlIiksaChhLm5UYWJsZSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsYisiX2luZm8iKSk7cmV0dXJuIGVbMF19ZnVuY3Rpb24gQmIoYSl7dmFyIGI9CmEuYWFuRmVhdHVyZXMuaTtpZigwIT09Yi5sZW5ndGgpe3ZhciBjPWEub0xhbmd1YWdlLGU9YS5faURpc3BsYXlTdGFydCsxLGQ9YS5mbkRpc3BsYXlFbmQoKSxmPWEuZm5SZWNvcmRzVG90YWwoKSxnPWEuZm5SZWNvcmRzRGlzcGxheSgpLGo9Zz9jLnNJbmZvOmMuc0luZm9FbXB0eTtnIT09ZiYmKGorPSIgIitjLnNJbmZvRmlsdGVyZWQpO2orPWMuc0luZm9Qb3N0Rml4O2o9Q2IoYSxqKTtjPWMuZm5JbmZvQ2FsbGJhY2s7bnVsbCE9PWMmJihqPWMuY2FsbChhLm9JbnN0YW5jZSxhLGUsZCxmLGcsaikpO2goYikuaHRtbChqKX19ZnVuY3Rpb24gQ2IoYSxiKXt2YXIgYz1hLmZuRm9ybWF0TnVtYmVyLGU9YS5faURpc3BsYXlTdGFydCsxLGQ9YS5faURpc3BsYXlMZW5ndGgsZj1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxnPS0xPT09ZDtyZXR1cm4gYi5yZXBsYWNlKC9fU1RBUlRfL2csYy5jYWxsKGEsZSkpLnJlcGxhY2UoL19FTkRfL2csYy5jYWxsKGEsYS5mbkRpc3BsYXlFbmQoKSkpLnJlcGxhY2UoL19NQVhfL2csCmMuY2FsbChhLGEuZm5SZWNvcmRzVG90YWwoKSkpLnJlcGxhY2UoL19UT1RBTF8vZyxjLmNhbGwoYSxmKSkucmVwbGFjZSgvX1BBR0VfL2csYy5jYWxsKGEsZz8xOk1hdGguY2VpbChlL2QpKSkucmVwbGFjZSgvX1BBR0VTXy9nLGMuY2FsbChhLGc/MTpNYXRoLmNlaWwoZi9kKSkpfWZ1bmN0aW9uIGdhKGEpe3ZhciBiLGMsZT1hLmlJbml0RGlzcGxheVN0YXJ0LGQ9YS5hb0NvbHVtbnMsZjtjPWEub0ZlYXR1cmVzO2lmKGEuYkluaXRpYWxpc2VkKXttYihhKTtqYihhKTtlYShhLGEuYW9IZWFkZXIpO2VhKGEsYS5hb0Zvb3Rlcik7QyhhLCEwKTtjLmJBdXRvV2lkdGgmJkdhKGEpO2I9MDtmb3IoYz1kLmxlbmd0aDtiPGM7YisrKWY9ZFtiXSxmLnNXaWR0aCYmKGYublRoLnN0eWxlLndpZHRoPXMoZi5zV2lkdGgpKTtOKGEpO2Q9QihhKTsic3NwIiE9ZCYmKCJhamF4Ij09ZD9yYShhLFtdLGZ1bmN0aW9uKGMpe3ZhciBmPXNhKGEsYyk7Zm9yKGI9MDtiPGYubGVuZ3RoO2IrKylLKGEsZltiXSk7CmEuaUluaXREaXNwbGF5U3RhcnQ9ZTtOKGEpO0MoYSwhMSk7dGEoYSxjKX0sYSk6KEMoYSwhMSksdGEoYSkpKX1lbHNlIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtnYShhKX0sMjAwKX1mdW5jdGlvbiB0YShhLGIpe2EuX2JJbml0Q29tcGxldGU9ITA7YiYmWChhKTt3KGEsImFvSW5pdENvbXBsZXRlIiwiaW5pdCIsW2EsYl0pfWZ1bmN0aW9uIFJhKGEsYil7dmFyIGM9cGFyc2VJbnQoYiwxMCk7YS5faURpc3BsYXlMZW5ndGg9YztTYShhKTt3KGEsbnVsbCwibGVuZ3RoIixbYSxjXSl9ZnVuY3Rpb24gbmIoYSl7Zm9yKHZhciBiPWEub0NsYXNzZXMsYz1hLnNUYWJsZUlkLGU9YS5hTGVuZ3RoTWVudSxkPWguaXNBcnJheShlWzBdKSxmPWQ/ZVswXTplLGU9ZD9lWzFdOmUsZD1oKCI8c2VsZWN0Lz4iLHtuYW1lOmMrIl9sZW5ndGgiLCJhcmlhLWNvbnRyb2xzIjpjLCJjbGFzcyI6Yi5zTGVuZ3RoU2VsZWN0fSksZz0wLGo9Zi5sZW5ndGg7ZzxqO2crKylkWzBdW2ddPW5ldyBPcHRpb24oZVtnXSwKZltnXSk7dmFyIGk9aCgiPGRpdj48bGFiZWwvPjwvZGl2PiIpLmFkZENsYXNzKGIuc0xlbmd0aCk7YS5hYW5GZWF0dXJlcy5sfHwoaVswXS5pZD1jKyJfbGVuZ3RoIik7aS5jaGlsZHJlbigpLmFwcGVuZChhLm9MYW5ndWFnZS5zTGVuZ3RoTWVudS5yZXBsYWNlKCJfTUVOVV8iLGRbMF0ub3V0ZXJIVE1MKSk7aCgic2VsZWN0IixpKS52YWwoYS5faURpc3BsYXlMZW5ndGgpLmJpbmQoImNoYW5nZS5EVCIsZnVuY3Rpb24oKXtSYShhLGgodGhpcykudmFsKCkpO00oYSl9KTtoKGEublRhYmxlKS5iaW5kKCJsZW5ndGguZHQuRFQiLGZ1bmN0aW9uKGIsYyxmKXthPT09YyYmaCgic2VsZWN0IixpKS52YWwoZil9KTtyZXR1cm4gaVswXX1mdW5jdGlvbiBzYihhKXt2YXIgYj1hLnNQYWdpbmF0aW9uVHlwZSxjPW0uZXh0LnBhZ2VyW2JdLGU9ImZ1bmN0aW9uIj09PXR5cGVvZiBjLGQ9ZnVuY3Rpb24oYSl7TShhKX0sYj1oKCI8ZGl2Lz4iKS5hZGRDbGFzcyhhLm9DbGFzc2VzLnNQYWdpbmcrYilbMF0sCmY9YS5hYW5GZWF0dXJlcztlfHxjLmZuSW5pdChhLGIsZCk7Zi5wfHwoYi5pZD1hLnNUYWJsZUlkKyJfcGFnaW5hdGUiLGEuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46ZnVuY3Rpb24oYSl7aWYoZSl7dmFyIGI9YS5faURpc3BsYXlTdGFydCxpPWEuX2lEaXNwbGF5TGVuZ3RoLGg9YS5mblJlY29yZHNEaXNwbGF5KCksbD0tMT09PWksYj1sPzA6TWF0aC5jZWlsKGIvaSksaT1sPzE6TWF0aC5jZWlsKGgvaSksaD1jKGIsaSkscSxsPTA7Zm9yKHE9Zi5wLmxlbmd0aDtsPHE7bCsrKVBhKGEsInBhZ2VCdXR0b24iKShhLGYucFtsXSxsLGgsYixpKX1lbHNlIGMuZm5VcGRhdGUoYSxkKX0sc05hbWU6InBhZ2luYXRpb24ifSkpO3JldHVybiBifWZ1bmN0aW9uIFRhKGEsYixjKXt2YXIgZT1hLl9pRGlzcGxheVN0YXJ0LGQ9YS5faURpc3BsYXlMZW5ndGgsZj1hLmZuUmVjb3Jkc0Rpc3BsYXkoKTswPT09Znx8LTE9PT1kP2U9MDoibnVtYmVyIj09PXR5cGVvZiBiPyhlPWIqZCxlPmYmJihlPTApKToKImZpcnN0Ij09Yj9lPTA6InByZXZpb3VzIj09Yj8oZT0wPD1kP2UtZDowLDA+ZSYmKGU9MCkpOiJuZXh0Ij09Yj9lK2Q8ZiYmKGUrPWQpOiJsYXN0Ij09Yj9lPU1hdGguZmxvb3IoKGYtMSkvZCkqZDpJKGEsMCwiVW5rbm93biBwYWdpbmcgYWN0aW9uOiAiK2IsNSk7Yj1hLl9pRGlzcGxheVN0YXJ0IT09ZTthLl9pRGlzcGxheVN0YXJ0PWU7YiYmKHcoYSxudWxsLCJwYWdlIixbYV0pLGMmJk0oYSkpO3JldHVybiBifWZ1bmN0aW9uIHBiKGEpe3JldHVybiBoKCI8ZGl2Lz4iLHtpZDohYS5hYW5GZWF0dXJlcy5yP2Euc1RhYmxlSWQrIl9wcm9jZXNzaW5nIjpudWxsLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUHJvY2Vzc2luZ30pLmh0bWwoYS5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcpLmluc2VydEJlZm9yZShhLm5UYWJsZSlbMF19ZnVuY3Rpb24gQyhhLGIpe2Eub0ZlYXR1cmVzLmJQcm9jZXNzaW5nJiZoKGEuYWFuRmVhdHVyZXMucikuY3NzKCJkaXNwbGF5IixiPyJibG9jayI6Im5vbmUiKTt3KGEsCm51bGwsInByb2Nlc3NpbmciLFthLGJdKX1mdW5jdGlvbiBxYihhKXt2YXIgYj1oKGEublRhYmxlKTtiLmF0dHIoInJvbGUiLCJncmlkIik7dmFyIGM9YS5vU2Nyb2xsO2lmKCIiPT09Yy5zWCYmIiI9PT1jLnNZKXJldHVybiBhLm5UYWJsZTt2YXIgZT1jLnNYLGQ9Yy5zWSxmPWEub0NsYXNzZXMsZz1iLmNoaWxkcmVuKCJjYXB0aW9uIiksaj1nLmxlbmd0aD9nWzBdLl9jYXB0aW9uU2lkZTpudWxsLGk9aChiWzBdLmNsb25lTm9kZSghMSkpLG89aChiWzBdLmNsb25lTm9kZSghMSkpLGw9Yi5jaGlsZHJlbigidGZvb3QiKTtjLnNYJiYiMTAwJSI9PT1iLmF0dHIoIndpZHRoIikmJmIucmVtb3ZlQXR0cigid2lkdGgiKTtsLmxlbmd0aHx8KGw9bnVsbCk7Yz1oKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbFdyYXBwZXJ9KS5hcHBlbmQoaCgiPGRpdi8+Iix7ImNsYXNzIjpmLnNTY3JvbGxIZWFkfSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoicmVsYXRpdmUiLGJvcmRlcjowLAp3aWR0aDplPyFlP251bGw6cyhlKToiMTAwJSJ9KS5hcHBlbmQoaCgiPGRpdi8+Iix7ImNsYXNzIjpmLnNTY3JvbGxIZWFkSW5uZXJ9KS5jc3MoeyJib3gtc2l6aW5nIjoiY29udGVudC1ib3giLHdpZHRoOmMuc1hJbm5lcnx8IjEwMCUifSkuYXBwZW5kKGkucmVtb3ZlQXR0cigiaWQiKS5jc3MoIm1hcmdpbi1sZWZ0IiwwKS5hcHBlbmQoInRvcCI9PT1qP2c6bnVsbCkuYXBwZW5kKGIuY2hpbGRyZW4oInRoZWFkIikpKSkpLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEJvZHl9KS5jc3Moe292ZXJmbG93OiJhdXRvIixoZWlnaHQ6IWQ/bnVsbDpzKGQpLHdpZHRoOiFlP251bGw6cyhlKX0pLmFwcGVuZChiKSk7bCYmYy5hcHBlbmQoaCgiPGRpdi8+Iix7ImNsYXNzIjpmLnNTY3JvbGxGb290fSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIixib3JkZXI6MCx3aWR0aDplPyFlP251bGw6cyhlKToiMTAwJSJ9KS5hcHBlbmQoaCgiPGRpdi8+Iix7ImNsYXNzIjpmLnNTY3JvbGxGb290SW5uZXJ9KS5hcHBlbmQoby5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLAowKS5hcHBlbmQoImJvdHRvbSI9PT1qP2c6bnVsbCkuYXBwZW5kKGIuY2hpbGRyZW4oInRmb290IikpKSkpO3ZhciBiPWMuY2hpbGRyZW4oKSxxPWJbMF0sZj1iWzFdLG49bD9iWzJdOm51bGw7aWYoZSloKGYpLm9uKCJzY3JvbGwuRFQiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5zY3JvbGxMZWZ0O3Euc2Nyb2xsTGVmdD1hO2wmJihuLnNjcm9sbExlZnQ9YSl9KTthLm5TY3JvbGxIZWFkPXE7YS5uU2Nyb2xsQm9keT1mO2EublNjcm9sbEZvb3Q9bjthLmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOlksc05hbWU6InNjcm9sbGluZyJ9KTtyZXR1cm4gY1swXX1mdW5jdGlvbiBZKGEpe3ZhciBiPWEub1Njcm9sbCxjPWIuc1gsZT1iLnNYSW5uZXIsZD1iLnNZLGY9Yi5pQmFyV2lkdGgsZz1oKGEublNjcm9sbEhlYWQpLGo9Z1swXS5zdHlsZSxpPWcuY2hpbGRyZW4oImRpdiIpLG89aVswXS5zdHlsZSxsPWkuY2hpbGRyZW4oInRhYmxlIiksaT1hLm5TY3JvbGxCb2R5LHE9aChpKSxuPWkuc3R5bGUsCms9aChhLm5TY3JvbGxGb290KS5jaGlsZHJlbigiZGl2IikscD1rLmNoaWxkcmVuKCJ0YWJsZSIpLG09aChhLm5USGVhZCkscj1oKGEublRhYmxlKSx0PXJbMF0sTz10LnN0eWxlLEw9YS5uVEZvb3Q/aChhLm5URm9vdCk6bnVsbCxoYT1hLm9Ccm93c2VyLHc9aGEuYlNjcm9sbE92ZXJzaXplLHYsdSx5LHgseixBPVtdLEI9W10sQz1bXSxELEU9ZnVuY3Rpb24oYSl7YT1hLnN0eWxlO2EucGFkZGluZ1RvcD0iMCI7YS5wYWRkaW5nQm90dG9tPSIwIjthLmJvcmRlclRvcFdpZHRoPSIwIjthLmJvcmRlckJvdHRvbVdpZHRoPSIwIjthLmhlaWdodD0wfTtyLmNoaWxkcmVuKCJ0aGVhZCwgdGZvb3QiKS5yZW1vdmUoKTt6PW0uY2xvbmUoKS5wcmVwZW5kVG8ocik7dj1tLmZpbmQoInRyIik7eT16LmZpbmQoInRyIik7ei5maW5kKCJ0aCwgdGQiKS5yZW1vdmVBdHRyKCJ0YWJpbmRleCIpO0wmJih4PUwuY2xvbmUoKS5wcmVwZW5kVG8ociksdT1MLmZpbmQoInRyIikseD14LmZpbmQoInRyIikpOwpjfHwobi53aWR0aD0iMTAwJSIsZ1swXS5zdHlsZS53aWR0aD0iMTAwJSIpO2guZWFjaChxYShhLHopLGZ1bmN0aW9uKGIsYyl7RD1sYShhLGIpO2Muc3R5bGUud2lkdGg9YS5hb0NvbHVtbnNbRF0uc1dpZHRofSk7TCYmRyhmdW5jdGlvbihhKXthLnN0eWxlLndpZHRoPSIifSx4KTtiLmJDb2xsYXBzZSYmIiIhPT1kJiYobi5oZWlnaHQ9cVswXS5vZmZzZXRIZWlnaHQrbVswXS5vZmZzZXRIZWlnaHQrInB4Iik7Zz1yLm91dGVyV2lkdGgoKTtpZigiIj09PWMpe2lmKE8ud2lkdGg9IjEwMCUiLHcmJihyLmZpbmQoInRib2R5IikuaGVpZ2h0KCk+aS5vZmZzZXRIZWlnaHR8fCJzY3JvbGwiPT1xLmNzcygib3ZlcmZsb3cteSIpKSlPLndpZHRoPXMoci5vdXRlcldpZHRoKCktZil9ZWxzZSIiIT09ZT9PLndpZHRoPXMoZSk6Zz09cS53aWR0aCgpJiZxLmhlaWdodCgpPHIuaGVpZ2h0KCk/KE8ud2lkdGg9cyhnLWYpLHIub3V0ZXJXaWR0aCgpPmctZiYmKE8ud2lkdGg9cyhnKSkpOk8ud2lkdGg9CnMoZyk7Zz1yLm91dGVyV2lkdGgoKTtHKEUseSk7RyhmdW5jdGlvbihhKXtDLnB1c2goYS5pbm5lckhUTUwpO0EucHVzaChzKGgoYSkuY3NzKCJ3aWR0aCIpKSl9LHkpO0coZnVuY3Rpb24oYSxiKXthLnN0eWxlLndpZHRoPUFbYl19LHYpO2goeSkuaGVpZ2h0KDApO0wmJihHKEUseCksRyhmdW5jdGlvbihhKXtCLnB1c2gocyhoKGEpLmNzcygid2lkdGgiKSkpfSx4KSxHKGZ1bmN0aW9uKGEsYil7YS5zdHlsZS53aWR0aD1CW2JdfSx1KSxoKHgpLmhlaWdodCgwKSk7RyhmdW5jdGlvbihhLGIpe2EuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJkYXRhVGFibGVzX3NpemluZyIgc3R5bGU9ImhlaWdodDowO292ZXJmbG93OmhpZGRlbjsiPicrQ1tiXSsiPC9kaXY+IjthLnN0eWxlLndpZHRoPUFbYl19LHkpO0wmJkcoZnVuY3Rpb24oYSxiKXthLmlubmVySFRNTD0iIjthLnN0eWxlLndpZHRoPUJbYl19LHgpO2lmKHIub3V0ZXJXaWR0aCgpPGcpe3U9aS5zY3JvbGxIZWlnaHQ+aS5vZmZzZXRIZWlnaHR8fAoic2Nyb2xsIj09cS5jc3MoIm92ZXJmbG93LXkiKT9nK2Y6ZztpZih3JiYoaS5zY3JvbGxIZWlnaHQ+aS5vZmZzZXRIZWlnaHR8fCJzY3JvbGwiPT1xLmNzcygib3ZlcmZsb3cteSIpKSlPLndpZHRoPXModS1mKTsoIiI9PT1jfHwiIiE9PWUpJiZJKGEsMSwiUG9zc2libGUgY29sdW1uIG1pc2FsaWdubWVudCIsNil9ZWxzZSB1PSIxMDAlIjtuLndpZHRoPXModSk7ai53aWR0aD1zKHUpO0wmJihhLm5TY3JvbGxGb290LnN0eWxlLndpZHRoPXModSkpOyFkJiZ3JiYobi5oZWlnaHQ9cyh0Lm9mZnNldEhlaWdodCtmKSk7ZCYmYi5iQ29sbGFwc2UmJihuLmhlaWdodD1zKGQpLGI9YyYmdC5vZmZzZXRXaWR0aD5pLm9mZnNldFdpZHRoP2Y6MCx0Lm9mZnNldEhlaWdodDxpLm9mZnNldEhlaWdodCYmKG4uaGVpZ2h0PXModC5vZmZzZXRIZWlnaHQrYikpKTtiPXIub3V0ZXJXaWR0aCgpO2xbMF0uc3R5bGUud2lkdGg9cyhiKTtvLndpZHRoPXMoYik7bD1yLmhlaWdodCgpPmkuY2xpZW50SGVpZ2h0fHwKInNjcm9sbCI9PXEuY3NzKCJvdmVyZmxvdy15Iik7aGE9InBhZGRpbmciKyhoYS5iU2Nyb2xsYmFyTGVmdD8iTGVmdCI6IlJpZ2h0Iik7b1toYV09bD9mKyJweCI6IjBweCI7TCYmKHBbMF0uc3R5bGUud2lkdGg9cyhiKSxrWzBdLnN0eWxlLndpZHRoPXMoYiksa1swXS5zdHlsZVtoYV09bD9mKyJweCI6IjBweCIpO3Euc2Nyb2xsKCk7aWYoKGEuYlNvcnRlZHx8YS5iRmlsdGVyZWQpJiYhYS5fZHJhd0hvbGQpaS5zY3JvbGxUb3A9MH1mdW5jdGlvbiBHKGEsYixjKXtmb3IodmFyIGU9MCxkPTAsZj1iLmxlbmd0aCxnLGo7ZDxmOyl7Zz1iW2RdLmZpcnN0Q2hpbGQ7Zm9yKGo9Yz9jW2RdLmZpcnN0Q2hpbGQ6bnVsbDtnOykxPT09Zy5ub2RlVHlwZSYmKGM/YShnLGosZSk6YShnLGUpLGUrKyksZz1nLm5leHRTaWJsaW5nLGo9Yz9qLm5leHRTaWJsaW5nOm51bGw7ZCsrfX1mdW5jdGlvbiBHYShhKXt2YXIgYj1hLm5UYWJsZSxjPWEuYW9Db2x1bW5zLGU9YS5vU2Nyb2xsLGQ9ZS5zWSxmPWUuc1gsCmc9ZS5zWElubmVyLGo9Yy5sZW5ndGgsZT1aKGEsImJWaXNpYmxlIiksaT1oKCJ0aCIsYS5uVEhlYWQpLG89Yi5nZXRBdHRyaWJ1dGUoIndpZHRoIiksbD1iLnBhcmVudE5vZGUsaz0hMSxuLG07KG49Yi5zdHlsZS53aWR0aCkmJi0xIT09bi5pbmRleE9mKCIlIikmJihvPW4pO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspbT1jW2Vbbl1dLG51bGwhPT1tLnNXaWR0aCYmKG0uc1dpZHRoPURiKG0uc1dpZHRoT3JpZyxsKSxrPSEwKTtpZighayYmIWYmJiFkJiZqPT1hYShhKSYmaj09aS5sZW5ndGgpZm9yKG49MDtuPGo7bisrKWNbbl0uc1dpZHRoPXMoaS5lcShuKS53aWR0aCgpKTtlbHNle2o9aChiKS5jbG9uZSgpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLnJlbW92ZUF0dHIoImlkIik7ai5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZSgpO3ZhciBwPWgoIjx0ci8+IikuYXBwZW5kVG8oai5maW5kKCJ0Ym9keSIpKTtqLmZpbmQoInRmb290IHRoLCB0Zm9vdCB0ZCIpLmNzcygid2lkdGgiLAoiIik7aT1xYShhLGouZmluZCgidGhlYWQiKVswXSk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyltPWNbZVtuXV0saVtuXS5zdHlsZS53aWR0aD1udWxsIT09bS5zV2lkdGhPcmlnJiYiIiE9PW0uc1dpZHRoT3JpZz9zKG0uc1dpZHRoT3JpZyk6IiI7aWYoYS5hb0RhdGEubGVuZ3RoKWZvcihuPTA7bjxlLmxlbmd0aDtuKyspaz1lW25dLG09Y1trXSxoKEViKGEsaykpLmNsb25lKCExKS5hcHBlbmQobS5zQ29udGVudFBhZGRpbmcpLmFwcGVuZFRvKHApO2ouYXBwZW5kVG8obCk7ZiYmZz9qLndpZHRoKGcpOmY/KGouY3NzKCJ3aWR0aCIsImF1dG8iKSxqLndpZHRoKCk8bC5vZmZzZXRXaWR0aCYmai53aWR0aChsLm9mZnNldFdpZHRoKSk6ZD9qLndpZHRoKGwub2Zmc2V0V2lkdGgpOm8mJmoud2lkdGgobyk7RmIoYSxqWzBdKTtpZihmKXtmb3Iobj1nPTA7bjxlLmxlbmd0aDtuKyspbT1jW2Vbbl1dLGQ9aChpW25dKS5vdXRlcldpZHRoKCksZys9bnVsbD09PW0uc1dpZHRoT3JpZz9kOnBhcnNlSW50KG0uc1dpZHRoLAoxMCkrZC1oKGlbbl0pLndpZHRoKCk7ai53aWR0aChzKGcpKTtiLnN0eWxlLndpZHRoPXMoZyl9Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpZihtPWNbZVtuXV0sZD1oKGlbbl0pLndpZHRoKCkpbS5zV2lkdGg9cyhkKTtiLnN0eWxlLndpZHRoPXMoai5jc3MoIndpZHRoIikpO2oucmVtb3ZlKCl9byYmKGIuc3R5bGUud2lkdGg9cyhvKSk7aWYoKG98fGYpJiYhYS5fcmVzekV2dCliPWZ1bmN0aW9uKCl7aChFYSkuYmluZCgicmVzaXplLkRULSIrYS5zSW5zdGFuY2UsdWEoZnVuY3Rpb24oKXtYKGEpfSkpfSxhLm9Ccm93c2VyLmJTY3JvbGxPdmVyc2l6ZT9zZXRUaW1lb3V0KGIsMUUzKTpiKCksYS5fcmVzekV2dD0hMH1mdW5jdGlvbiB1YShhLGIpe3ZhciBjPWIhPT1rP2I6MjAwLGUsZDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj10aGlzLGc9K25ldyBEYXRlLGo9YXJndW1lbnRzO2UmJmc8ZStjPyhjbGVhclRpbWVvdXQoZCksZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZT1rO2EuYXBwbHkoYiwKail9LGMpKTooZT1nLGEuYXBwbHkoYixqKSl9fWZ1bmN0aW9uIERiKGEsYil7aWYoIWEpcmV0dXJuIDA7dmFyIGM9aCgiPGRpdi8+IikuY3NzKCJ3aWR0aCIscyhhKSkuYXBwZW5kVG8oYnx8US5ib2R5KSxlPWNbMF0ub2Zmc2V0V2lkdGg7Yy5yZW1vdmUoKTtyZXR1cm4gZX1mdW5jdGlvbiBGYihhLGIpe3ZhciBjPWEub1Njcm9sbDtpZihjLnNYfHxjLnNZKWM9IWMuc1g/Yy5pQmFyV2lkdGg6MCxiLnN0eWxlLndpZHRoPXMoaChiKS5vdXRlcldpZHRoKCktYyl9ZnVuY3Rpb24gRWIoYSxiKXt2YXIgYz1HYihhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDt2YXIgZT1hLmFvRGF0YVtjXTtyZXR1cm4hZS5uVHI/aCgiPHRkLz4iKS5odG1sKHgoYSxjLGIsImRpc3BsYXkiKSlbMF06ZS5hbkNlbGxzW2JdfWZ1bmN0aW9uIEdiKGEsYil7Zm9yKHZhciBjLGU9LTEsZD0tMSxmPTAsZz1hLmFvRGF0YS5sZW5ndGg7ZjxnO2YrKyljPXgoYSxmLGIsImRpc3BsYXkiKSsiIixjPWMucmVwbGFjZSgkYiwiIiksCmMubGVuZ3RoPmUmJihlPWMubGVuZ3RoLGQ9Zik7cmV0dXJuIGR9ZnVuY3Rpb24gcyhhKXtyZXR1cm4gbnVsbD09PWE/IjBweCI6Im51bWJlciI9PXR5cGVvZiBhPzA+YT8iMHB4IjphKyJweCI6YS5tYXRjaCgvXGQkLyk/YSsicHgiOmF9ZnVuY3Rpb24gSGIoKXt2YXIgYT1tLl9fc2Nyb2xsYmFyV2lkdGg7aWYoYT09PWspe3ZhciBiPWgoIjxwLz4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLHdpZHRoOiIxMDAlIixoZWlnaHQ6MTUwLHBhZGRpbmc6MCxvdmVyZmxvdzoic2Nyb2xsIix2aXNpYmlsaXR5OiJoaWRkZW4ifSkuYXBwZW5kVG8oImJvZHkiKSxhPWJbMF0ub2Zmc2V0V2lkdGgtYlswXS5jbGllbnRXaWR0aDttLl9fc2Nyb2xsYmFyV2lkdGg9YTtiLnJlbW92ZSgpfXJldHVybiBhfWZ1bmN0aW9uIFUoYSl7dmFyIGIsYyxlPVtdLGQ9YS5hb0NvbHVtbnMsZixnLGosaTtiPWEuYWFTb3J0aW5nRml4ZWQ7Yz1oLmlzUGxhaW5PYmplY3QoYik7dmFyIG89W107CmY9ZnVuY3Rpb24oYSl7YS5sZW5ndGgmJiFoLmlzQXJyYXkoYVswXSk/by5wdXNoKGEpOm8ucHVzaC5hcHBseShvLGEpfTtoLmlzQXJyYXkoYikmJmYoYik7YyYmYi5wcmUmJmYoYi5wcmUpO2YoYS5hYVNvcnRpbmcpO2MmJmIucG9zdCYmZihiLnBvc3QpO2ZvcihhPTA7YTxvLmxlbmd0aDthKyspe2k9b1thXVswXTtmPWRbaV0uYURhdGFTb3J0O2I9MDtmb3IoYz1mLmxlbmd0aDtiPGM7YisrKWc9ZltiXSxqPWRbZ10uc1R5cGV8fCJzdHJpbmciLG9bYV0uX2lkeD09PWsmJihvW2FdLl9pZHg9aC5pbkFycmF5KG9bYV1bMV0sZFtnXS5hc1NvcnRpbmcpKSxlLnB1c2goe3NyYzppLGNvbDpnLGRpcjpvW2FdWzFdLGluZGV4Om9bYV0uX2lkeCx0eXBlOmosZm9ybWF0dGVyOm0uZXh0LnR5cGUub3JkZXJbaisiLXByZSJdfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbGIoYSl7dmFyIGIsYyxlPVtdLGQ9bS5leHQudHlwZS5vcmRlcixmPWEuYW9EYXRhLGc9MCxqLGk9YS5haURpc3BsYXlNYXN0ZXIsaDsKSGEoYSk7aD1VKGEpO2I9MDtmb3IoYz1oLmxlbmd0aDtiPGM7YisrKWo9aFtiXSxqLmZvcm1hdHRlciYmZysrLEliKGEsai5jb2wpO2lmKCJzc3AiIT1CKGEpJiYwIT09aC5sZW5ndGgpe2I9MDtmb3IoYz1pLmxlbmd0aDtiPGM7YisrKWVbaVtiXV09YjtnPT09aC5sZW5ndGg/aS5zb3J0KGZ1bmN0aW9uKGEsYil7dmFyIGMsZCxnLGosaT1oLmxlbmd0aCxrPWZbYV0uX2FTb3J0RGF0YSxtPWZbYl0uX2FTb3J0RGF0YTtmb3IoZz0wO2c8aTtnKyspaWYoaj1oW2ddLGM9a1tqLmNvbF0sZD1tW2ouY29sXSxjPWM8ZD8tMTpjPmQ/MTowLDAhPT1jKXJldHVybiJhc2MiPT09ai5kaXI/YzotYztjPWVbYV07ZD1lW2JdO3JldHVybiBjPGQ/LTE6Yz5kPzE6MH0pOmkuc29ydChmdW5jdGlvbihhLGIpe3ZhciBjLGcsaixpLGs9aC5sZW5ndGgsbT1mW2FdLl9hU29ydERhdGEscj1mW2JdLl9hU29ydERhdGE7Zm9yKGo9MDtqPGs7aisrKWlmKGk9aFtqXSxjPW1baS5jb2xdLGc9cltpLmNvbF0saT1kW2kudHlwZSsKIi0iK2kuZGlyXXx8ZFsic3RyaW5nLSIraS5kaXJdLGM9aShjLGcpLDAhPT1jKXJldHVybiBjO2M9ZVthXTtnPWVbYl07cmV0dXJuIGM8Zz8tMTpjPmc/MTowfSl9YS5iU29ydGVkPSEwfWZ1bmN0aW9uIEpiKGEpe2Zvcih2YXIgYixjLGU9YS5hb0NvbHVtbnMsZD1VKGEpLGE9YS5vTGFuZ3VhZ2Uub0FyaWEsZj0wLGc9ZS5sZW5ndGg7ZjxnO2YrKyl7Yz1lW2ZdO3ZhciBqPWMuYXNTb3J0aW5nO2I9Yy5zVGl0bGUucmVwbGFjZSgvPC4qPz4vZywiIik7dmFyIGk9Yy5uVGg7aS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpO2MuYlNvcnRhYmxlJiYoMDxkLmxlbmd0aCYmZFswXS5jb2w9PWY/KGkuc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLCJhc2MiPT1kWzBdLmRpcj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyIpLGM9altkWzBdLmluZGV4KzFdfHxqWzBdKTpjPWpbMF0sYis9ImFzYyI9PT1jP2Euc1NvcnRBc2NlbmRpbmc6YS5zU29ydERlc2NlbmRpbmcpO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwKYil9fWZ1bmN0aW9uIFVhKGEsYixjLGUpe3ZhciBkPWEuYWFTb3J0aW5nLGY9YS5hb0NvbHVtbnNbYl0uYXNTb3J0aW5nLGc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLl9pZHg7Yz09PWsmJihjPWguaW5BcnJheShhWzFdLGYpKTtyZXR1cm4gYysxPGYubGVuZ3RoP2MrMTpiP251bGw6MH07Im51bWJlciI9PT10eXBlb2YgZFswXSYmKGQ9YS5hYVNvcnRpbmc9W2RdKTtjJiZhLm9GZWF0dXJlcy5iU29ydE11bHRpPyhjPWguaW5BcnJheShiLEQoZCwiMCIpKSwtMSE9PWM/KGI9ZyhkW2NdLCEwKSxudWxsPT09YiYmMT09PWQubGVuZ3RoJiYoYj0wKSxudWxsPT09Yj9kLnNwbGljZShjLDEpOihkW2NdWzFdPWZbYl0sZFtjXS5faWR4PWIpKTooZC5wdXNoKFtiLGZbMF0sMF0pLGRbZC5sZW5ndGgtMV0uX2lkeD0wKSk6ZC5sZW5ndGgmJmRbMF1bMF09PWI/KGI9ZyhkWzBdKSxkLmxlbmd0aD0xLGRbMF1bMV09ZltiXSxkWzBdLl9pZHg9Yik6KGQubGVuZ3RoPTAsZC5wdXNoKFtiLGZbMF1dKSxkWzBdLl9pZHg9CjApO04oYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoYSl9ZnVuY3Rpb24gT2EoYSxiLGMsZSl7dmFyIGQ9YS5hb0NvbHVtbnNbY107VmEoYix7fSxmdW5jdGlvbihiKXshMSE9PWQuYlNvcnRhYmxlJiYoYS5vRmVhdHVyZXMuYlByb2Nlc3Npbmc/KEMoYSwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe1VhKGEsYyxiLnNoaWZ0S2V5LGUpOyJzc3AiIT09QihhKSYmQyhhLCExKX0sMCkpOlVhKGEsYyxiLnNoaWZ0S2V5LGUpKX0pfWZ1bmN0aW9uIHhhKGEpe3ZhciBiPWEuYUxhc3RTb3J0LGM9YS5vQ2xhc3Nlcy5zU29ydENvbHVtbixlPVUoYSksZD1hLm9GZWF0dXJlcyxmLGc7aWYoZC5iU29ydCYmZC5iU29ydENsYXNzZXMpe2Q9MDtmb3IoZj1iLmxlbmd0aDtkPGY7ZCsrKWc9YltkXS5zcmMsaChEKGEuYW9EYXRhLCJhbkNlbGxzIixnKSkucmVtb3ZlQ2xhc3MoYysoMj5kP2QrMTozKSk7ZD0wO2ZvcihmPWUubGVuZ3RoO2Q8ZjtkKyspZz1lW2RdLnNyYyxoKEQoYS5hb0RhdGEsImFuQ2VsbHMiLApnKSkuYWRkQ2xhc3MoYysoMj5kP2QrMTozKSl9YS5hTGFzdFNvcnQ9ZX1mdW5jdGlvbiBJYihhLGIpe3ZhciBjPWEuYW9Db2x1bW5zW2JdLGU9bS5leHQub3JkZXJbYy5zU29ydERhdGFUeXBlXSxkO2UmJihkPWUuY2FsbChhLm9JbnN0YW5jZSxhLGIsJChhLGIpKSk7Zm9yKHZhciBmLGc9bS5leHQudHlwZS5vcmRlcltjLnNUeXBlKyItcHJlIl0saj0wLGk9YS5hb0RhdGEubGVuZ3RoO2o8aTtqKyspaWYoYz1hLmFvRGF0YVtqXSxjLl9hU29ydERhdGF8fChjLl9hU29ydERhdGE9W10pLCFjLl9hU29ydERhdGFbYl18fGUpZj1lP2Rbal06eChhLGosYiwic29ydCIpLGMuX2FTb3J0RGF0YVtiXT1nP2coZik6Zn1mdW5jdGlvbiB5YShhKXtpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlJiYhYS5iRGVzdHJveWluZyl7dmFyIGI9e3RpbWU6K25ldyBEYXRlLHN0YXJ0OmEuX2lEaXNwbGF5U3RhcnQsbGVuZ3RoOmEuX2lEaXNwbGF5TGVuZ3RoLG9yZGVyOmguZXh0ZW5kKCEwLFtdLGEuYWFTb3J0aW5nKSwKc2VhcmNoOnpiKGEub1ByZXZpb3VzU2VhcmNoKSxjb2x1bW5zOmgubWFwKGEuYW9Db2x1bW5zLGZ1bmN0aW9uKGIsZSl7cmV0dXJue3Zpc2libGU6Yi5iVmlzaWJsZSxzZWFyY2g6emIoYS5hb1ByZVNlYXJjaENvbHNbZV0pfX0pfTt3KGEsImFvU3RhdGVTYXZlUGFyYW1zIiwic3RhdGVTYXZlUGFyYW1zIixbYSxiXSk7YS5vU2F2ZWRTdGF0ZT1iO2EuZm5TdGF0ZVNhdmVDYWxsYmFjay5jYWxsKGEub0luc3RhbmNlLGEsYil9fWZ1bmN0aW9uIEtiKGEpe3ZhciBiLGMsZT1hLmFvQ29sdW1ucztpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlKXt2YXIgZD1hLmZuU3RhdGVMb2FkQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhKTtpZihkJiZkLnRpbWUmJihiPXcoYSwiYW9TdGF0ZUxvYWRQYXJhbXMiLCJzdGF0ZUxvYWRQYXJhbXMiLFthLGRdKSwtMT09PWguaW5BcnJheSghMSxiKSYmKGI9YS5pU3RhdGVEdXJhdGlvbiwhKDA8YiYmZC50aW1lPCtuZXcgRGF0ZS0xRTMqYikmJmUubGVuZ3RoPT09CmQuY29sdW1ucy5sZW5ndGgpKSl7YS5vTG9hZGVkU3RhdGU9aC5leHRlbmQoITAse30sZCk7ZC5zdGFydCE9PWsmJihhLl9pRGlzcGxheVN0YXJ0PWQuc3RhcnQsYS5pSW5pdERpc3BsYXlTdGFydD1kLnN0YXJ0KTtkLmxlbmd0aCE9PWsmJihhLl9pRGlzcGxheUxlbmd0aD1kLmxlbmd0aCk7ZC5vcmRlciE9PWsmJihhLmFhU29ydGluZz1bXSxoLmVhY2goZC5vcmRlcixmdW5jdGlvbihiLGMpe2EuYWFTb3J0aW5nLnB1c2goY1swXT49ZS5sZW5ndGg/WzAsY1sxXV06Yyl9KSk7ZC5zZWFyY2ghPT1rJiZoLmV4dGVuZChhLm9QcmV2aW91c1NlYXJjaCxBYihkLnNlYXJjaCkpO2I9MDtmb3IoYz1kLmNvbHVtbnMubGVuZ3RoO2I8YztiKyspe3ZhciBmPWQuY29sdW1uc1tiXTtmLnZpc2libGUhPT1rJiYoZVtiXS5iVmlzaWJsZT1mLnZpc2libGUpO2Yuc2VhcmNoIT09ayYmaC5leHRlbmQoYS5hb1ByZVNlYXJjaENvbHNbYl0sQWIoZi5zZWFyY2gpKX13KGEsImFvU3RhdGVMb2FkZWQiLCJzdGF0ZUxvYWRlZCIsClthLGRdKX19fWZ1bmN0aW9uIHphKGEpe3ZhciBiPW0uc2V0dGluZ3MsYT1oLmluQXJyYXkoYSxEKGIsIm5UYWJsZSIpKTtyZXR1cm4tMSE9PWE/YlthXTpudWxsfWZ1bmN0aW9uIEkoYSxiLGMsZSl7Yz0iRGF0YVRhYmxlcyB3YXJuaW5nOiAiKyhudWxsIT09YT8idGFibGUgaWQ9IithLnNUYWJsZUlkKyIgLSAiOiIiKStjO2UmJihjKz0iLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yLCBwbGVhc2Ugc2VlIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC90bi8iK2UpO2lmKGIpRWEuY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGMpO2Vsc2UgaWYoYj1tLmV4dCxiPWIuc0Vyck1vZGV8fGIuZXJyTW9kZSx3KGEsbnVsbCwiZXJyb3IiLFthLGUsY10pLCJhbGVydCI9PWIpYWxlcnQoYyk7ZWxzZXtpZigidGhyb3ciPT1iKXRocm93IEVycm9yKGMpOyJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiKGEsZSxjKX19ZnVuY3Rpb24gRShhLGIsYyxlKXtoLmlzQXJyYXkoYyk/CmguZWFjaChjLGZ1bmN0aW9uKGMsZil7aC5pc0FycmF5KGYpP0UoYSxiLGZbMF0sZlsxXSk6RShhLGIsZil9KTooZT09PWsmJihlPWMpLGJbY10hPT1rJiYoYVtlXT1iW2NdKSl9ZnVuY3Rpb24gTGIoYSxiLGMpe3ZhciBlLGQ7Zm9yKGQgaW4gYiliLmhhc093blByb3BlcnR5KGQpJiYoZT1iW2RdLGguaXNQbGFpbk9iamVjdChlKT8oaC5pc1BsYWluT2JqZWN0KGFbZF0pfHwoYVtkXT17fSksaC5leHRlbmQoITAsYVtkXSxlKSk6YVtkXT1jJiYiZGF0YSIhPT1kJiYiYWFEYXRhIiE9PWQmJmguaXNBcnJheShlKT9lLnNsaWNlKCk6ZSk7cmV0dXJuIGF9ZnVuY3Rpb24gVmEoYSxiLGMpe2goYSkuYmluZCgiY2xpY2suRFQiLGIsZnVuY3Rpb24oYil7YS5ibHVyKCk7YyhiKX0pLmJpbmQoImtleXByZXNzLkRUIixiLGZ1bmN0aW9uKGEpezEzPT09YS53aGljaCYmKGEucHJldmVudERlZmF1bHQoKSxjKGEpKX0pLmJpbmQoInNlbGVjdHN0YXJ0LkRUIixmdW5jdGlvbigpe3JldHVybiExfSl9ZnVuY3Rpb24geihhLApiLGMsZSl7YyYmYVtiXS5wdXNoKHtmbjpjLHNOYW1lOmV9KX1mdW5jdGlvbiB3KGEsYixjLGUpe3ZhciBkPVtdO2ImJihkPWgubWFwKGFbYl0uc2xpY2UoKS5yZXZlcnNlKCksZnVuY3Rpb24oYil7cmV0dXJuIGIuZm4uYXBwbHkoYS5vSW5zdGFuY2UsZSl9KSk7bnVsbCE9PWMmJihiPWguRXZlbnQoYysiLmR0IiksaChhLm5UYWJsZSkudHJpZ2dlcihiLGUpLGQucHVzaChiLnJlc3VsdCkpO3JldHVybiBkfWZ1bmN0aW9uIFNhKGEpe3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsYz1hLmZuRGlzcGxheUVuZCgpLGU9YS5faURpc3BsYXlMZW5ndGg7Yj49YyYmKGI9Yy1lKTtiLT1iJWU7aWYoLTE9PT1lfHwwPmIpYj0wO2EuX2lEaXNwbGF5U3RhcnQ9Yn1mdW5jdGlvbiBQYShhLGIpe3ZhciBjPWEucmVuZGVyZXIsZT1tLmV4dC5yZW5kZXJlcltiXTtyZXR1cm4gaC5pc1BsYWluT2JqZWN0KGMpJiZjW2JdP2VbY1tiXV18fGUuXzoic3RyaW5nIj09PXR5cGVvZiBjP2VbY118fGUuXzplLl99ZnVuY3Rpb24gQihhKXtyZXR1cm4gYS5vRmVhdHVyZXMuYlNlcnZlclNpZGU/CiJzc3AiOmEuYWpheHx8YS5zQWpheFNvdXJjZT8iYWpheCI6ImRvbSJ9ZnVuY3Rpb24gV2EoYSxiKXt2YXIgYz1bXSxjPU1iLm51bWJlcnNfbGVuZ3RoLGU9TWF0aC5mbG9vcihjLzIpO2I8PWM/Yz1WKDAsYik6YTw9ZT8oYz1WKDAsYy0yKSxjLnB1c2goImVsbGlwc2lzIiksYy5wdXNoKGItMSkpOihhPj1iLTEtZT9jPVYoYi0oYy0yKSxiKTooYz1WKGEtZSsyLGErZS0xKSxjLnB1c2goImVsbGlwc2lzIiksYy5wdXNoKGItMSkpLGMuc3BsaWNlKDAsMCwiZWxsaXBzaXMiKSxjLnNwbGljZSgwLDAsMCkpO2MuRFRfZWw9InNwYW4iO3JldHVybiBjfWZ1bmN0aW9uIGRiKGEpe2guZWFjaCh7bnVtOmZ1bmN0aW9uKGIpe3JldHVybiBBYShiLGEpfSwibnVtLWZtdCI6ZnVuY3Rpb24oYil7cmV0dXJuIEFhKGIsYSxYYSl9LCJodG1sLW51bSI6ZnVuY3Rpb24oYil7cmV0dXJuIEFhKGIsYSxCYSl9LCJodG1sLW51bS1mbXQiOmZ1bmN0aW9uKGIpe3JldHVybiBBYShiLGEsQmEsWGEpfX0sZnVuY3Rpb24oYiwKYyl7dS50eXBlLm9yZGVyW2IrYSsiLXByZSJdPWM7Yi5tYXRjaCgvXmh0bWxcLS8pJiYodS50eXBlLnNlYXJjaFtiK2FdPXUudHlwZS5zZWFyY2guaHRtbCl9KX1mdW5jdGlvbiBOYihhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj1bemEodGhpc1ttLmV4dC5pQXBpSW5kZXhdKV0uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiBtLmV4dC5pbnRlcm5hbFthXS5hcHBseSh0aGlzLGIpfX12YXIgbSx1LHQscix2LFlhPXt9LE9iPS9bXHJcbl0vZyxCYT0vPC4qPz4vZyxhYz0vXltcd1wrXC1dLyxiYz0vW1x3XCtcLV0kLyxZYj1SZWdFeHAoIihcXC98XFwufFxcKnxcXCt8XFw/fFxcfHxcXCh8XFwpfFxcW3xcXF18XFx7fFxcfXxcXFxcfFxcJHxcXF58XFwtKSIsImciKSxYYT0vWycsJFx1MDBhM1x1MjBhY1x1MDBhNSVcdTIwMDlcdTIwMkZcdTIwQkRcdTIwYTlcdTIwQkFyZmtdL2dpLEo9ZnVuY3Rpb24oYSl7cmV0dXJuIWF8fCEwPT09YXx8CiItIj09PWE/ITA6ITF9LFBiPWZ1bmN0aW9uKGEpe3ZhciBiPXBhcnNlSW50KGEsMTApO3JldHVybiFpc05hTihiKSYmaXNGaW5pdGUoYSk/YjpudWxsfSxRYj1mdW5jdGlvbihhLGIpe1lhW2JdfHwoWWFbYl09UmVnRXhwKHZhKGIpLCJnIikpO3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJiIuIiE9PWI/YS5yZXBsYWNlKC9cLi9nLCIiKS5yZXBsYWNlKFlhW2JdLCIuIik6YX0sWmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlPSJzdHJpbmciPT09dHlwZW9mIGE7aWYoSihhKSlyZXR1cm4hMDtiJiZlJiYoYT1RYihhLGIpKTtjJiZlJiYoYT1hLnJlcGxhY2UoWGEsIiIpKTtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChhKSkmJmlzRmluaXRlKGEpfSxSYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIEooYSk/ITA6IShKKGEpfHwic3RyaW5nIj09PXR5cGVvZiBhKT9udWxsOlphKGEucmVwbGFjZShCYSwiIiksYixjKT8hMDpudWxsfSxEPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1bXSxkPTAsZj1hLmxlbmd0aDsKaWYoYyE9PWspZm9yKDtkPGY7ZCsrKWFbZF0mJmFbZF1bYl0mJmUucHVzaChhW2RdW2JdW2NdKTtlbHNlIGZvcig7ZDxmO2QrKylhW2RdJiZlLnB1c2goYVtkXVtiXSk7cmV0dXJuIGV9LGlhPWZ1bmN0aW9uKGEsYixjLGUpe3ZhciBkPVtdLGY9MCxnPWIubGVuZ3RoO2lmKGUhPT1rKWZvcig7ZjxnO2YrKylhW2JbZl1dW2NdJiZkLnB1c2goYVtiW2ZdXVtjXVtlXSk7ZWxzZSBmb3IoO2Y8ZztmKyspZC5wdXNoKGFbYltmXV1bY10pO3JldHVybiBkfSxWPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZTtiPT09az8oYj0wLGU9YSk6KGU9YixiPWEpO2Zvcih2YXIgZD1iO2Q8ZTtkKyspYy5wdXNoKGQpO3JldHVybiBjfSxTYj1mdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz0wLGU9YS5sZW5ndGg7YzxlO2MrKylhW2NdJiZiLnB1c2goYVtjXSk7cmV0dXJuIGJ9LE5hPWZ1bmN0aW9uKGEpe3ZhciBiPVtdLGMsZSxkPWEubGVuZ3RoLGYsZz0wO2U9MDthOmZvcig7ZTxkO2UrKyl7Yz1hW2VdO2ZvcihmPQowO2Y8ZztmKyspaWYoYltmXT09PWMpY29udGludWUgYTtiLnB1c2goYyk7ZysrfXJldHVybiBifSxBPWZ1bmN0aW9uKGEsYixjKXthW2JdIT09ayYmKGFbY109YVtiXSl9LGJhPS9cWy4qP1xdJC8sVD0vXChcKSQvLHdhPWgoIjxkaXY+IilbMF0sWmI9d2EudGV4dENvbnRlbnQhPT1rLCRiPS88Lio/Pi9nO209ZnVuY3Rpb24oYSl7dGhpcy4kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYXBpKCEwKS4kKGEsYil9O3RoaXMuXz1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmFwaSghMCkucm93cyhhLGIpLmRhdGEoKX07dGhpcy5hcGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bmV3IHQoemEodGhpc1t1LmlBcGlJbmRleF0pKTpuZXcgdCh0aGlzKX07dGhpcy5mbkFkZERhdGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmFwaSghMCksZT1oLmlzQXJyYXkoYSkmJihoLmlzQXJyYXkoYVswXSl8fGguaXNQbGFpbk9iamVjdChhWzBdKSk/Yy5yb3dzLmFkZChhKTpjLnJvdy5hZGQoYSk7KGI9PT0Ka3x8YikmJmMuZHJhdygpO3JldHVybiBlLmZsYXR0ZW4oKS50b0FycmF5KCl9O3RoaXMuZm5BZGp1c3RDb2x1bW5TaXppbmc9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLmNvbHVtbnMuYWRqdXN0KCksYz1iLnNldHRpbmdzKClbMF0sZT1jLm9TY3JvbGw7YT09PWt8fGE/Yi5kcmF3KCExKTooIiIhPT1lLnNYfHwiIiE9PWUuc1kpJiZZKGMpfTt0aGlzLmZuQ2xlYXJUYWJsZT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmFwaSghMCkuY2xlYXIoKTsoYT09PWt8fGEpJiZiLmRyYXcoKX07dGhpcy5mbkNsb3NlPWZ1bmN0aW9uKGEpe3RoaXMuYXBpKCEwKS5yb3coYSkuY2hpbGQuaGlkZSgpfTt0aGlzLmZuRGVsZXRlUm93PWZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzLmFwaSghMCksYT1lLnJvd3MoYSksZD1hLnNldHRpbmdzKClbMF0saD1kLmFvRGF0YVthWzBdWzBdXTthLnJlbW92ZSgpO2ImJmIuY2FsbCh0aGlzLGQsaCk7KGM9PT1rfHxjKSYmZS5kcmF3KCk7cmV0dXJuIGh9Owp0aGlzLmZuRGVzdHJveT1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkuZGVzdHJveShhKX07dGhpcy5mbkRyYXc9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLmRyYXcoYSl9O3RoaXMuZm5GaWx0ZXI9ZnVuY3Rpb24oYSxiLGMsZSxkLGgpe2Q9dGhpcy5hcGkoITApO251bGw9PT1ifHxiPT09az9kLnNlYXJjaChhLGMsZSxoKTpkLmNvbHVtbihiKS5zZWFyY2goYSxjLGUsaCk7ZC5kcmF3KCl9O3RoaXMuZm5HZXREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApO2lmKGEhPT1rKXt2YXIgZT1hLm5vZGVOYW1lP2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKToiIjtyZXR1cm4gYiE9PWt8fCJ0ZCI9PWV8fCJ0aCI9PWU/Yy5jZWxsKGEsYikuZGF0YSgpOmMucm93KGEpLmRhdGEoKXx8bnVsbH1yZXR1cm4gYy5kYXRhKCkudG9BcnJheSgpfTt0aGlzLmZuR2V0Tm9kZXM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApO3JldHVybiBhIT09az9iLnJvdyhhKS5ub2RlKCk6Yi5yb3dzKCkubm9kZXMoKS5mbGF0dGVuKCkudG9BcnJheSgpfTsKdGhpcy5mbkdldFBvc2l0aW9uPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKSxjPWEubm9kZU5hbWUudG9VcHBlckNhc2UoKTtyZXR1cm4iVFIiPT1jP2Iucm93KGEpLmluZGV4KCk6IlREIj09Y3x8IlRIIj09Yz8oYT1iLmNlbGwoYSkuaW5kZXgoKSxbYS5yb3csYS5jb2x1bW5WaXNpYmxlLGEuY29sdW1uXSk6bnVsbH07dGhpcy5mbklzT3Blbj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5pc1Nob3duKCl9O3RoaXMuZm5PcGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZChiLGMpLnNob3coKS5jaGlsZCgpWzBdfTt0aGlzLmZuUGFnZUNoYW5nZT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuYXBpKCEwKS5wYWdlKGEpOyhiPT09a3x8YikmJmMuZHJhdyghMSl9O3RoaXMuZm5TZXRDb2x1bW5WaXM9ZnVuY3Rpb24oYSxiLGMpe2E9dGhpcy5hcGkoITApLmNvbHVtbihhKS52aXNpYmxlKGIpOyhjPT09Cmt8fGMpJiZhLmNvbHVtbnMuYWRqdXN0KCkuZHJhdygpfTt0aGlzLmZuU2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gemEodGhpc1t1LmlBcGlJbmRleF0pfTt0aGlzLmZuU29ydD1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkub3JkZXIoYSkuZHJhdygpfTt0aGlzLmZuU29ydExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjKXt0aGlzLmFwaSghMCkub3JkZXIubGlzdGVuZXIoYSxiLGMpfTt0aGlzLmZuVXBkYXRlPWZ1bmN0aW9uKGEsYixjLGUsZCl7dmFyIGg9dGhpcy5hcGkoITApO2M9PT1rfHxudWxsPT09Yz9oLnJvdyhiKS5kYXRhKGEpOmguY2VsbChiLGMpLmRhdGEoYSk7KGQ9PT1rfHxkKSYmaC5jb2x1bW5zLmFkanVzdCgpOyhlPT09a3x8ZSkmJmguZHJhdygpO3JldHVybiAwfTt0aGlzLmZuVmVyc2lvbkNoZWNrPXUuZm5WZXJzaW9uQ2hlY2s7dmFyIGI9dGhpcyxjPWE9PT1rLGU9dGhpcy5sZW5ndGg7YyYmKGE9e30pO3RoaXMub0FwaT10aGlzLmludGVybmFsPXUuaW50ZXJuYWw7Zm9yKHZhciBkIGluIG0uZXh0LmludGVybmFsKWQmJgoodGhpc1tkXT1OYihkKSk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9e30sZD0xPGU/TGIoZCxhLCEwKTphLGc9MCxqLGk9dGhpcy5nZXRBdHRyaWJ1dGUoImlkIiksbz0hMSxsPW0uZGVmYXVsdHMscT1oKHRoaXMpO2lmKCJ0YWJsZSIhPXRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlJKG51bGwsMCwiTm9uLXRhYmxlIG5vZGUgaW5pdGlhbGlzYXRpb24gKCIrdGhpcy5ub2RlTmFtZSsiKSIsMik7ZWxzZXtlYihsKTtmYihsLmNvbHVtbik7SChsLGwsITApO0gobC5jb2x1bW4sbC5jb2x1bW4sITApO0gobCxoLmV4dGVuZChkLHEuZGF0YSgpKSk7dmFyIG49bS5zZXR0aW5ncyxnPTA7Zm9yKGo9bi5sZW5ndGg7ZzxqO2crKyl7dmFyIHI9bltnXTtpZihyLm5UYWJsZT09dGhpc3x8ci5uVEhlYWQucGFyZW50Tm9kZT09dGhpc3x8ci5uVEZvb3QmJnIublRGb290LnBhcmVudE5vZGU9PXRoaXMpe2c9ZC5iUmV0cmlldmUhPT1rP2QuYlJldHJpZXZlOmwuYlJldHJpZXZlO2lmKGN8fGcpcmV0dXJuIHIub0luc3RhbmNlOwppZihkLmJEZXN0cm95IT09az9kLmJEZXN0cm95OmwuYkRlc3Ryb3kpe3Iub0luc3RhbmNlLmZuRGVzdHJveSgpO2JyZWFrfWVsc2V7SShyLDAsIkNhbm5vdCByZWluaXRpYWxpc2UgRGF0YVRhYmxlIiwzKTtyZXR1cm59fWlmKHIuc1RhYmxlSWQ9PXRoaXMuaWQpe24uc3BsaWNlKGcsMSk7YnJlYWt9fWlmKG51bGw9PT1pfHwiIj09PWkpdGhpcy5pZD1pPSJEYXRhVGFibGVzX1RhYmxlXyIrbS5leHQuX3VuaXF1ZSsrO3ZhciBwPWguZXh0ZW5kKCEwLHt9LG0ubW9kZWxzLm9TZXR0aW5ncyx7c0Rlc3Ryb3lXaWR0aDpxWzBdLnN0eWxlLndpZHRoLHNJbnN0YW5jZTppLHNUYWJsZUlkOml9KTtwLm5UYWJsZT10aGlzO3Aub0FwaT1iLmludGVybmFsO3Aub0luaXQ9ZDtuLnB1c2gocCk7cC5vSW5zdGFuY2U9MT09PWIubGVuZ3RoP2I6cS5kYXRhVGFibGUoKTtlYihkKTtkLm9MYW5ndWFnZSYmUChkLm9MYW5ndWFnZSk7ZC5hTGVuZ3RoTWVudSYmIWQuaURpc3BsYXlMZW5ndGgmJihkLmlEaXNwbGF5TGVuZ3RoPQpoLmlzQXJyYXkoZC5hTGVuZ3RoTWVudVswXSk/ZC5hTGVuZ3RoTWVudVswXVswXTpkLmFMZW5ndGhNZW51WzBdKTtkPUxiKGguZXh0ZW5kKCEwLHt9LGwpLGQpO0UocC5vRmVhdHVyZXMsZCwiYlBhZ2luYXRlIGJMZW5ndGhDaGFuZ2UgYkZpbHRlciBiU29ydCBiU29ydE11bHRpIGJJbmZvIGJQcm9jZXNzaW5nIGJBdXRvV2lkdGggYlNvcnRDbGFzc2VzIGJTZXJ2ZXJTaWRlIGJEZWZlclJlbmRlciIuc3BsaXQoIiAiKSk7RShwLGQsWyJhc1N0cmlwZUNsYXNzZXMiLCJhamF4IiwiZm5TZXJ2ZXJEYXRhIiwiZm5Gb3JtYXROdW1iZXIiLCJzU2VydmVyTWV0aG9kIiwiYWFTb3J0aW5nIiwiYWFTb3J0aW5nRml4ZWQiLCJhTGVuZ3RoTWVudSIsInNQYWdpbmF0aW9uVHlwZSIsInNBamF4U291cmNlIiwic0FqYXhEYXRhUHJvcCIsImlTdGF0ZUR1cmF0aW9uIiwic0RvbSIsImJTb3J0Q2VsbHNUb3AiLCJpVGFiSW5kZXgiLCJmblN0YXRlTG9hZENhbGxiYWNrIiwiZm5TdGF0ZVNhdmVDYWxsYmFjayIsCiJyZW5kZXJlciIsInNlYXJjaERlbGF5IixbImlDb29raWVEdXJhdGlvbiIsImlTdGF0ZUR1cmF0aW9uIl0sWyJvU2VhcmNoIiwib1ByZXZpb3VzU2VhcmNoIl0sWyJhb1NlYXJjaENvbHMiLCJhb1ByZVNlYXJjaENvbHMiXSxbImlEaXNwbGF5TGVuZ3RoIiwiX2lEaXNwbGF5TGVuZ3RoIl0sWyJiSlF1ZXJ5VUkiLCJiSlVJIl1dKTtFKHAub1Njcm9sbCxkLFtbInNTY3JvbGxYIiwic1giXSxbInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIl0sWyJzU2Nyb2xsWSIsInNZIl0sWyJiU2Nyb2xsQ29sbGFwc2UiLCJiQ29sbGFwc2UiXV0pO0UocC5vTGFuZ3VhZ2UsZCwiZm5JbmZvQ2FsbGJhY2siKTt6KHAsImFvRHJhd0NhbGxiYWNrIixkLmZuRHJhd0NhbGxiYWNrLCJ1c2VyIik7eihwLCJhb1NlcnZlclBhcmFtcyIsZC5mblNlcnZlclBhcmFtcywidXNlciIpO3oocCwiYW9TdGF0ZVNhdmVQYXJhbXMiLGQuZm5TdGF0ZVNhdmVQYXJhbXMsInVzZXIiKTt6KHAsImFvU3RhdGVMb2FkUGFyYW1zIiwKZC5mblN0YXRlTG9hZFBhcmFtcywidXNlciIpO3oocCwiYW9TdGF0ZUxvYWRlZCIsZC5mblN0YXRlTG9hZGVkLCJ1c2VyIik7eihwLCJhb1Jvd0NhbGxiYWNrIixkLmZuUm93Q2FsbGJhY2ssInVzZXIiKTt6KHAsImFvUm93Q3JlYXRlZENhbGxiYWNrIixkLmZuQ3JlYXRlZFJvdywidXNlciIpO3oocCwiYW9IZWFkZXJDYWxsYmFjayIsZC5mbkhlYWRlckNhbGxiYWNrLCJ1c2VyIik7eihwLCJhb0Zvb3RlckNhbGxiYWNrIixkLmZuRm9vdGVyQ2FsbGJhY2ssInVzZXIiKTt6KHAsImFvSW5pdENvbXBsZXRlIixkLmZuSW5pdENvbXBsZXRlLCJ1c2VyIik7eihwLCJhb1ByZURyYXdDYWxsYmFjayIsZC5mblByZURyYXdDYWxsYmFjaywidXNlciIpO2k9cC5vQ2xhc3NlcztkLmJKUXVlcnlVST8oaC5leHRlbmQoaSxtLmV4dC5vSlVJQ2xhc3NlcyxkLm9DbGFzc2VzKSxkLnNEb209PT1sLnNEb20mJiJsZnJ0aXAiPT09bC5zRG9tJiYocC5zRG9tPSc8IkgibGZyPnQ8IkYiaXA+JykscC5yZW5kZXJlcik/CmguaXNQbGFpbk9iamVjdChwLnJlbmRlcmVyKSYmIXAucmVuZGVyZXIuaGVhZGVyJiYocC5yZW5kZXJlci5oZWFkZXI9ImpxdWVyeXVpIik6cC5yZW5kZXJlcj0ianF1ZXJ5dWkiOmguZXh0ZW5kKGksbS5leHQuY2xhc3NlcyxkLm9DbGFzc2VzKTtxLmFkZENsYXNzKGkuc1RhYmxlKTtpZigiIiE9PXAub1Njcm9sbC5zWHx8IiIhPT1wLm9TY3JvbGwuc1kpcC5vU2Nyb2xsLmlCYXJXaWR0aD1IYigpOyEwPT09cC5vU2Nyb2xsLnNYJiYocC5vU2Nyb2xsLnNYPSIxMDAlIik7cC5pSW5pdERpc3BsYXlTdGFydD09PWsmJihwLmlJbml0RGlzcGxheVN0YXJ0PWQuaURpc3BsYXlTdGFydCxwLl9pRGlzcGxheVN0YXJ0PWQuaURpc3BsYXlTdGFydCk7bnVsbCE9PWQuaURlZmVyTG9hZGluZyYmKHAuYkRlZmVyTG9hZGluZz0hMCxnPWguaXNBcnJheShkLmlEZWZlckxvYWRpbmcpLHAuX2lSZWNvcmRzRGlzcGxheT1nP2QuaURlZmVyTG9hZGluZ1swXTpkLmlEZWZlckxvYWRpbmcscC5faVJlY29yZHNUb3RhbD0KZz9kLmlEZWZlckxvYWRpbmdbMV06ZC5pRGVmZXJMb2FkaW5nKTt2YXIgdD1wLm9MYW5ndWFnZTtoLmV4dGVuZCghMCx0LGQub0xhbmd1YWdlKTsiIiE9PXQuc1VybCYmKGguYWpheCh7ZGF0YVR5cGU6Impzb24iLHVybDp0LnNVcmwsc3VjY2VzczpmdW5jdGlvbihhKXtQKGEpO0gobC5vTGFuZ3VhZ2UsYSk7aC5leHRlbmQodHJ1ZSx0LGEpO2dhKHApfSxlcnJvcjpmdW5jdGlvbigpe2dhKHApfX0pLG89ITApO251bGw9PT1kLmFzU3RyaXBlQ2xhc3NlcyYmKHAuYXNTdHJpcGVDbGFzc2VzPVtpLnNTdHJpcGVPZGQsaS5zU3RyaXBlRXZlbl0pO3ZhciBnPXAuYXNTdHJpcGVDbGFzc2VzLHM9cS5jaGlsZHJlbigidGJvZHkiKS5maW5kKCJ0ciIpLmVxKDApOy0xIT09aC5pbkFycmF5KCEwLGgubWFwKGcsZnVuY3Rpb24oYSl7cmV0dXJuIHMuaGFzQ2xhc3MoYSl9KSkmJihoKCJ0Ym9keSB0ciIsdGhpcykucmVtb3ZlQ2xhc3MoZy5qb2luKCIgIikpLHAuYXNEZXN0cm95U3RyaXBlcz1nLnNsaWNlKCkpOwpuPVtdO2c9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGhlYWQiKTswIT09Zy5sZW5ndGgmJihkYShwLmFvSGVhZGVyLGdbMF0pLG49cWEocCkpO2lmKG51bGw9PT1kLmFvQ29sdW1ucyl7cj1bXTtnPTA7Zm9yKGo9bi5sZW5ndGg7ZzxqO2crKylyLnB1c2gobnVsbCl9ZWxzZSByPWQuYW9Db2x1bW5zO2c9MDtmb3Ioaj1yLmxlbmd0aDtnPGo7ZysrKUZhKHAsbj9uW2ddOm51bGwpO2liKHAsZC5hb0NvbHVtbkRlZnMscixmdW5jdGlvbihhLGIpe2thKHAsYSxiKX0pO2lmKHMubGVuZ3RoKXt2YXIgdT1mdW5jdGlvbihhLGIpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgiZGF0YS0iK2IpIT09bnVsbD9iOm51bGx9O2guZWFjaChuYShwLHNbMF0pLmNlbGxzLGZ1bmN0aW9uKGEsYil7dmFyIGM9cC5hb0NvbHVtbnNbYV07aWYoYy5tRGF0YT09PWEpe3ZhciBkPXUoYiwic29ydCIpfHx1KGIsIm9yZGVyIiksZT11KGIsImZpbHRlciIpfHx1KGIsInNlYXJjaCIpO2lmKGQhPT1udWxsfHxlIT09Cm51bGwpe2MubURhdGE9e186YSsiLmRpc3BsYXkiLHNvcnQ6ZCE9PW51bGw/YSsiLkBkYXRhLSIrZDprLHR5cGU6ZCE9PW51bGw/YSsiLkBkYXRhLSIrZDprLGZpbHRlcjplIT09bnVsbD9hKyIuQGRhdGEtIitlOmt9O2thKHAsYSl9fX0pfXZhciB2PXAub0ZlYXR1cmVzO2QuYlN0YXRlU2F2ZSYmKHYuYlN0YXRlU2F2ZT0hMCxLYihwLGQpLHoocCwiYW9EcmF3Q2FsbGJhY2siLHlhLCJzdGF0ZV9zYXZlIikpO2lmKGQuYWFTb3J0aW5nPT09ayl7bj1wLmFhU29ydGluZztnPTA7Zm9yKGo9bi5sZW5ndGg7ZzxqO2crKyluW2ddWzFdPXAuYW9Db2x1bW5zW2ddLmFzU29ydGluZ1swXX14YShwKTt2LmJTb3J0JiZ6KHAsImFvRHJhd0NhbGxiYWNrIixmdW5jdGlvbigpe2lmKHAuYlNvcnRlZCl7dmFyIGE9VShwKSxiPXt9O2guZWFjaChhLGZ1bmN0aW9uKGEsYyl7YltjLnNyY109Yy5kaXJ9KTt3KHAsbnVsbCwib3JkZXIiLFtwLGEsYl0pO0piKHApfX0pO3oocCwiYW9EcmF3Q2FsbGJhY2siLApmdW5jdGlvbigpeyhwLmJTb3J0ZWR8fEIocCk9PT0ic3NwInx8di5iRGVmZXJSZW5kZXIpJiZ4YShwKX0sInNjIik7Z2IocCk7Zz1xLmNoaWxkcmVuKCJjYXB0aW9uIikuZWFjaChmdW5jdGlvbigpe3RoaXMuX2NhcHRpb25TaWRlPXEuY3NzKCJjYXB0aW9uLXNpZGUiKX0pO2o9cS5jaGlsZHJlbigidGhlYWQiKTswPT09ai5sZW5ndGgmJihqPWgoIjx0aGVhZC8+IikuYXBwZW5kVG8odGhpcykpO3AublRIZWFkPWpbMF07aj1xLmNoaWxkcmVuKCJ0Ym9keSIpOzA9PT1qLmxlbmd0aCYmKGo9aCgiPHRib2R5Lz4iKS5hcHBlbmRUbyh0aGlzKSk7cC5uVEJvZHk9alswXTtqPXEuY2hpbGRyZW4oInRmb290Iik7aWYoMD09PWoubGVuZ3RoJiYwPGcubGVuZ3RoJiYoIiIhPT1wLm9TY3JvbGwuc1h8fCIiIT09cC5vU2Nyb2xsLnNZKSlqPWgoIjx0Zm9vdC8+IikuYXBwZW5kVG8odGhpcyk7MD09PWoubGVuZ3RofHwwPT09ai5jaGlsZHJlbigpLmxlbmd0aD9xLmFkZENsYXNzKGkuc05vRm9vdGVyKToKMDxqLmxlbmd0aCYmKHAublRGb290PWpbMF0sZGEocC5hb0Zvb3RlcixwLm5URm9vdCkpO2lmKGQuYWFEYXRhKWZvcihnPTA7ZzxkLmFhRGF0YS5sZW5ndGg7ZysrKUsocCxkLmFhRGF0YVtnXSk7ZWxzZShwLmJEZWZlckxvYWRpbmd8fCJkb20iPT1CKHApKSYmbWEocCxoKHAublRCb2R5KS5jaGlsZHJlbigidHIiKSk7cC5haURpc3BsYXk9cC5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtwLmJJbml0aWFsaXNlZD0hMDshMT09PW8mJmdhKHApfX0pO2I9bnVsbDtyZXR1cm4gdGhpc307dmFyIFRiPVtdLHk9QXJyYXkucHJvdG90eXBlLGNjPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZT1tLnNldHRpbmdzLGQ9aC5tYXAoZSxmdW5jdGlvbihhKXtyZXR1cm4gYS5uVGFibGV9KTtpZihhKXtpZihhLm5UYWJsZSYmYS5vQXBpKXJldHVyblthXTtpZihhLm5vZGVOYW1lJiYidGFibGUiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBiPWguaW5BcnJheShhLGQpLC0xIT09Yj9bZVtiXV06Cm51bGw7aWYoYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzKXJldHVybiBhLnNldHRpbmdzKCkudG9BcnJheSgpOyJzdHJpbmciPT09dHlwZW9mIGE/Yz1oKGEpOmEgaW5zdGFuY2VvZiBoJiYoYz1hKX1lbHNlIHJldHVybltdO2lmKGMpcmV0dXJuIGMubWFwKGZ1bmN0aW9uKCl7Yj1oLmluQXJyYXkodGhpcyxkKTtyZXR1cm4tMSE9PWI/ZVtiXTpudWxsfSkudG9BcnJheSgpfTt0PWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgdCkpcmV0dXJuIG5ldyB0KGEsYik7dmFyIGM9W10sZT1mdW5jdGlvbihhKXsoYT1jYyhhKSkmJmMucHVzaC5hcHBseShjLGEpfTtpZihoLmlzQXJyYXkoYSkpZm9yKHZhciBkPTAsZj1hLmxlbmd0aDtkPGY7ZCsrKWUoYVtkXSk7ZWxzZSBlKGEpO3RoaXMuY29udGV4dD1OYShjKTtiJiZ0aGlzLnB1c2guYXBwbHkodGhpcyxiLnRvQXJyYXk/Yi50b0FycmF5KCk6Yik7dGhpcy5zZWxlY3Rvcj17cm93czpudWxsLGNvbHM6bnVsbCxvcHRzOm51bGx9Owp0LmV4dGVuZCh0aGlzLHRoaXMsVGIpfTttLkFwaT10O3QucHJvdG90eXBlPXthbnk6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuZmxhdHRlbigpLmxlbmd0aH0sY29uY2F0OnkuY29uY2F0LGNvbnRleHQ6W10sZWFjaDpmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2I8YztiKyspYS5jYWxsKHRoaXMsdGhpc1tiXSxiLHRoaXMpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7cmV0dXJuIGIubGVuZ3RoPmE/bmV3IHQoYlthXSx0aGlzW2FdKTpudWxsfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoeS5maWx0ZXIpYj15LmZpbHRlci5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0wLGU9dGhpcy5sZW5ndGg7YzxlO2MrKylhLmNhbGwodGhpcyx0aGlzW2NdLGMsdGhpcykmJmIucHVzaCh0aGlzW2NdKTtyZXR1cm4gbmV3IHQodGhpcy5jb250ZXh0LGIpfSxmbGF0dGVuOmZ1bmN0aW9uKCl7dmFyIGE9W107CnJldHVybiBuZXcgdCh0aGlzLmNvbnRleHQsYS5jb25jYXQuYXBwbHkoYSx0aGlzLnRvQXJyYXkoKSkpfSxqb2luOnkuam9pbixpbmRleE9mOnkuaW5kZXhPZnx8ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Ynx8MCxlPXRoaXMubGVuZ3RoO2M8ZTtjKyspaWYodGhpc1tjXT09PWEpcmV0dXJuIGM7cmV0dXJuLTF9LGl0ZXJhdG9yOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBkPVtdLGYsZyxoLGksbyxsPXRoaXMuY29udGV4dCxxLG4sbT10aGlzLnNlbGVjdG9yOyJzdHJpbmciPT09dHlwZW9mIGEmJihlPWMsYz1iLGI9YSxhPSExKTtnPTA7Zm9yKGg9bC5sZW5ndGg7ZzxoO2crKyl7dmFyIHA9bmV3IHQobFtnXSk7aWYoInRhYmxlIj09PWIpZj1jLmNhbGwocCxsW2ddLGcpLGYhPT1rJiZkLnB1c2goZik7ZWxzZSBpZigiY29sdW1ucyI9PT1ifHwicm93cyI9PT1iKWY9Yy5jYWxsKHAsbFtnXSx0aGlzW2ddLGcpLGYhPT1rJiZkLnB1c2goZik7ZWxzZSBpZigiY29sdW1uIj09PWJ8fCJjb2x1bW4tcm93cyI9PT0KYnx8InJvdyI9PT1ifHwiY2VsbCI9PT1iKXtuPXRoaXNbZ107ImNvbHVtbi1yb3dzIj09PWImJihxPUNhKGxbZ10sbS5vcHRzKSk7aT0wO2ZvcihvPW4ubGVuZ3RoO2k8bztpKyspZj1uW2ldLGY9ImNlbGwiPT09Yj9jLmNhbGwocCxsW2ddLGYucm93LGYuY29sdW1uLGcsaSk6Yy5jYWxsKHAsbFtnXSxmLGcsaSxxKSxmIT09ayYmZC5wdXNoKGYpfX1yZXR1cm4gZC5sZW5ndGh8fGU/KGE9bmV3IHQobCxhP2QuY29uY2F0LmFwcGx5KFtdLGQpOmQpLGI9YS5zZWxlY3RvcixiLnJvd3M9bS5yb3dzLGIuY29scz1tLmNvbHMsYi5vcHRzPW0ub3B0cyxhKTp0aGlzfSxsYXN0SW5kZXhPZjp5Lmxhc3RJbmRleE9mfHxmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmluZGV4T2YuYXBwbHkodGhpcy50b0FycmF5LnJldmVyc2UoKSxhcmd1bWVudHMpfSxsZW5ndGg6MCxtYXA6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYoeS5tYXApYj15Lm1hcC5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0KMCxlPXRoaXMubGVuZ3RoO2M8ZTtjKyspYi5wdXNoKGEuY2FsbCh0aGlzLHRoaXNbY10sYykpO3JldHVybiBuZXcgdCh0aGlzLmNvbnRleHQsYil9LHBsdWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYlthXX0pfSxwb3A6eS5wb3AscHVzaDp5LnB1c2gscmVkdWNlOnkucmVkdWNlfHxmdW5jdGlvbihhLGIpe3JldHVybiBoYih0aGlzLGEsYiwwLHRoaXMubGVuZ3RoLDEpfSxyZWR1Y2VSaWdodDp5LnJlZHVjZVJpZ2h0fHxmdW5jdGlvbihhLGIpe3JldHVybiBoYih0aGlzLGEsYix0aGlzLmxlbmd0aC0xLC0xLC0xKX0scmV2ZXJzZTp5LnJldmVyc2Usc2VsZWN0b3I6bnVsbCxzaGlmdDp5LnNoaWZ0LHNvcnQ6eS5zb3J0LHNwbGljZTp5LnNwbGljZSx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHkuc2xpY2UuY2FsbCh0aGlzKX0sdG8kOmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcyl9LHRvSlF1ZXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcyl9LAp1bmlxdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHQodGhpcy5jb250ZXh0LE5hKHRoaXMpKX0sdW5zaGlmdDp5LnVuc2hpZnR9O3QuZXh0ZW5kPWZ1bmN0aW9uKGEsYixjKXtpZihjLmxlbmd0aCYmYiYmKGIgaW5zdGFuY2VvZiB0fHxiLl9fZHRfd3JhcHBlcikpe3ZhciBlLGQsZixnPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD1iLmFwcGx5KGEsYXJndW1lbnRzKTt0LmV4dGVuZChkLGQsYy5tZXRob2RFeHQpO3JldHVybiBkfX07ZT0wO2ZvcihkPWMubGVuZ3RoO2U8ZDtlKyspZj1jW2VdLGJbZi5uYW1lXT0iZnVuY3Rpb24iPT09dHlwZW9mIGYudmFsP2coYSxmLnZhbCxmKTpoLmlzUGxhaW5PYmplY3QoZi52YWwpP3t9OmYudmFsLGJbZi5uYW1lXS5fX2R0X3dyYXBwZXI9ITAsdC5leHRlbmQoYSxiW2YubmFtZV0sZi5wcm9wRXh0KX19O3QucmVnaXN0ZXI9cj1mdW5jdGlvbihhLGIpe2lmKGguaXNBcnJheShhKSlmb3IodmFyIGM9MCxlPWEubGVuZ3RoO2M8CmU7YysrKXQucmVnaXN0ZXIoYVtjXSxiKTtlbHNlIGZvcih2YXIgZD1hLnNwbGl0KCIuIiksZj1UYixnLGosYz0wLGU9ZC5sZW5ndGg7YzxlO2MrKyl7Zz0oaj0tMSE9PWRbY10uaW5kZXhPZigiKCkiKSk/ZFtjXS5yZXBsYWNlKCIoKSIsIiIpOmRbY107dmFyIGk7YTp7aT0wO2Zvcih2YXIgbz1mLmxlbmd0aDtpPG87aSsrKWlmKGZbaV0ubmFtZT09PWcpe2k9ZltpXTticmVhayBhfWk9bnVsbH1pfHwoaT17bmFtZTpnLHZhbDp7fSxtZXRob2RFeHQ6W10scHJvcEV4dDpbXX0sZi5wdXNoKGkpKTtjPT09ZS0xP2kudmFsPWI6Zj1qP2kubWV0aG9kRXh0OmkucHJvcEV4dH19O3QucmVnaXN0ZXJQbHVyYWw9dj1mdW5jdGlvbihhLGIsYyl7dC5yZWdpc3RlcihhLGMpO3QucmVnaXN0ZXIoYixmdW5jdGlvbigpe3ZhciBhPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhPT09dGhpcz90aGlzOmEgaW5zdGFuY2VvZiB0P2EubGVuZ3RoP2guaXNBcnJheShhWzBdKT9uZXcgdChhLmNvbnRleHQsCmFbMF0pOmFbMF06azphfSl9O3IoInRhYmxlcygpIixmdW5jdGlvbihhKXt2YXIgYjtpZihhKXtiPXQ7dmFyIGM9dGhpcy5jb250ZXh0O2lmKCJudW1iZXIiPT09dHlwZW9mIGEpYT1bY1thXV07ZWxzZSB2YXIgZT1oLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UYWJsZX0pLGE9aChlKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKCl7dmFyIGE9aC5pbkFycmF5KHRoaXMsZSk7cmV0dXJuIGNbYV19KS50b0FycmF5KCk7Yj1uZXcgYihhKX1lbHNlIGI9dGhpcztyZXR1cm4gYn0pO3IoInRhYmxlKCkiLGZ1bmN0aW9uKGEpe3ZhciBhPXRoaXMudGFibGVzKGEpLGI9YS5jb250ZXh0O3JldHVybiBiLmxlbmd0aD9uZXcgdChiWzBdKTphfSk7digidGFibGVzKCkubm9kZXMoKSIsInRhYmxlKCkubm9kZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlfSwxKX0pO3YoInRhYmxlcygpLmJvZHkoKSIsInRhYmxlKCkuYm9keSgpIiwKZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UQm9keX0sMSl9KTt2KCJ0YWJsZXMoKS5oZWFkZXIoKSIsInRhYmxlKCkuaGVhZGVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVEhlYWR9LDEpfSk7digidGFibGVzKCkuZm9vdGVyKCkiLCJ0YWJsZSgpLmZvb3RlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRGb290fSwxKX0pO3YoInRhYmxlcygpLmNvbnRhaW5lcnMoKSIsInRhYmxlKCkuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVGFibGVXcmFwcGVyfSwxKX0pO3IoImRyYXcoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtOKGIsCiExPT09YSl9KX0pO3IoInBhZ2UoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1rP3RoaXMucGFnZS5pbmZvKCkucGFnZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7VGEoYixhKX0pfSk7cigicGFnZS5pbmZvKCkiLGZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY29udGV4dC5sZW5ndGgpcmV0dXJuIGs7dmFyIGE9dGhpcy5jb250ZXh0WzBdLGI9YS5faURpc3BsYXlTdGFydCxjPWEuX2lEaXNwbGF5TGVuZ3RoLGU9YS5mblJlY29yZHNEaXNwbGF5KCksZD0tMT09PWM7cmV0dXJue3BhZ2U6ZD8wOk1hdGguZmxvb3IoYi9jKSxwYWdlczpkPzE6TWF0aC5jZWlsKGUvYyksc3RhcnQ6YixlbmQ6YS5mbkRpc3BsYXlFbmQoKSxsZW5ndGg6YyxyZWNvcmRzVG90YWw6YS5mblJlY29yZHNUb3RhbCgpLHJlY29yZHNEaXNwbGF5OmV9fSk7cigicGFnZS5sZW4oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1rPzAhPT10aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5faURpc3BsYXlMZW5ndGg6Cms6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe1JhKGIsYSl9KX0pO3ZhciBVYj1mdW5jdGlvbihhLGIsYyl7aWYoYyl7dmFyIGU9bmV3IHQoYSk7ZS5vbmUoImRyYXciLGZ1bmN0aW9uKCl7YyhlLmFqYXguanNvbigpKX0pfSJzc3AiPT1CKGEpP04oYSxiKTooQyhhLCEwKSxyYShhLFtdLGZ1bmN0aW9uKGMpe29hKGEpO2Zvcih2YXIgYz1zYShhLGMpLGU9MCxnPWMubGVuZ3RoO2U8ZztlKyspSyhhLGNbZV0pO04oYSxiKTtDKGEsITEpfSkpfTtyKCJhamF4Lmpzb24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7aWYoMDxhLmxlbmd0aClyZXR1cm4gYVswXS5qc29ufSk7cigiYWpheC5wYXJhbXMoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7aWYoMDxhLmxlbmd0aClyZXR1cm4gYVswXS5vQWpheERhdGF9KTtyKCJhamF4LnJlbG9hZCgpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7VWIoYywKITE9PT1iLGEpfSl9KTtyKCJhamF4LnVybCgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7aWYoYT09PWspe2lmKDA9PT1iLmxlbmd0aClyZXR1cm4gaztiPWJbMF07cmV0dXJuIGIuYWpheD9oLmlzUGxhaW5PYmplY3QoYi5hamF4KT9iLmFqYXgudXJsOmIuYWpheDpiLnNBamF4U291cmNlfXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7aC5pc1BsYWluT2JqZWN0KGIuYWpheCk/Yi5hamF4LnVybD1hOmIuYWpheD1hfSl9KTtyKCJhamF4LnVybCgpLmxvYWQoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGMpe1ViKGMsITE9PT1iLGEpfSl9KTt2YXIgJGE9ZnVuY3Rpb24oYSxiLGMsZSxkKXt2YXIgZj1bXSxnLGosaSxvLGwscTtpPXR5cGVvZiBiO2lmKCFifHwic3RyaW5nIj09PWl8fCJmdW5jdGlvbiI9PT1pfHxiLmxlbmd0aD09PWspYj1bYl07aT0wO2ZvcihvPWIubGVuZ3RoO2k8bztpKyspe2o9CmJbaV0mJmJbaV0uc3BsaXQ/YltpXS5zcGxpdCgiLCIpOltiW2ldXTtsPTA7Zm9yKHE9ai5sZW5ndGg7bDxxO2wrKykoZz1jKCJzdHJpbmciPT09dHlwZW9mIGpbbF0/aC50cmltKGpbbF0pOmpbbF0pKSYmZy5sZW5ndGgmJmYucHVzaC5hcHBseShmLGcpfWE9dS5zZWxlY3RvclthXTtpZihhLmxlbmd0aCl7aT0wO2ZvcihvPWEubGVuZ3RoO2k8bztpKyspZj1hW2ldKGUsZCxmKX1yZXR1cm4gZn0sYWI9ZnVuY3Rpb24oYSl7YXx8KGE9e30pO2EuZmlsdGVyJiZhLnNlYXJjaD09PWsmJihhLnNlYXJjaD1hLmZpbHRlcik7cmV0dXJuIGguZXh0ZW5kKHtzZWFyY2g6Im5vbmUiLG9yZGVyOiJjdXJyZW50IixwYWdlOiJhbGwifSxhKX0sYmI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aDtiPGM7YisrKWlmKDA8YVtiXS5sZW5ndGgpcmV0dXJuIGFbMF09YVtiXSxhWzBdLmxlbmd0aD0xLGEubGVuZ3RoPTEsYS5jb250ZXh0PVthLmNvbnRleHRbYl1dLGE7YS5sZW5ndGg9MDtyZXR1cm4gYX0sCkNhPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxkLGY9W10sZz1hLmFpRGlzcGxheTtjPWEuYWlEaXNwbGF5TWFzdGVyO3ZhciBqPWIuc2VhcmNoO2U9Yi5vcmRlcjtkPWIucGFnZTtpZigic3NwIj09QihhKSlyZXR1cm4icmVtb3ZlZCI9PT1qP1tdOlYoMCxjLmxlbmd0aCk7aWYoImN1cnJlbnQiPT1kKXtjPWEuX2lEaXNwbGF5U3RhcnQ7Zm9yKGU9YS5mbkRpc3BsYXlFbmQoKTtjPGU7YysrKWYucHVzaChnW2NdKX1lbHNlIGlmKCJjdXJyZW50Ij09ZXx8ImFwcGxpZWQiPT1lKWY9Im5vbmUiPT1qP2Muc2xpY2UoKToiYXBwbGllZCI9PWo/Zy5zbGljZSgpOmgubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJuLTE9PT1oLmluQXJyYXkoYSxnKT9hOm51bGx9KTtlbHNlIGlmKCJpbmRleCI9PWV8fCJvcmlnaW5hbCI9PWUpe2M9MDtmb3IoZT1hLmFvRGF0YS5sZW5ndGg7YzxlO2MrKykibm9uZSI9PWo/Zi5wdXNoKGMpOihkPWguaW5BcnJheShjLGcpLCgtMT09PWQmJiJyZW1vdmVkIj09anx8MDw9ZCYmCiJhcHBsaWVkIj09aikmJmYucHVzaChjKSl9cmV0dXJuIGZ9O3IoInJvd3MoKSIsZnVuY3Rpb24oYSxiKXthPT09az9hPSIiOmguaXNQbGFpbk9iamVjdChhKSYmKGI9YSxhPSIiKTt2YXIgYj1hYihiKSxjPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjKXt2YXIgZD1iO3JldHVybiAkYSgicm93IixhLGZ1bmN0aW9uKGEpe3ZhciBiPVBiKGEpO2lmKGIhPT1udWxsJiYhZClyZXR1cm5bYl07dmFyIGo9Q2EoYyxkKTtpZihiIT09bnVsbCYmaC5pbkFycmF5KGIsaikhPT0tMSlyZXR1cm5bYl07aWYoIWEpcmV0dXJuIGo7aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXJldHVybiBoLm1hcChqLGZ1bmN0aW9uKGIpe3ZhciBkPWMuYW9EYXRhW2JdO3JldHVybiBhKGIsZC5fYURhdGEsZC5uVHIpP2I6bnVsbH0pO2I9U2IoaWEoYy5hb0RhdGEsaiwiblRyIikpO3JldHVybiBhLm5vZGVOYW1lJiZoLmluQXJyYXkoYSxiKSE9PS0xP1thLl9EVF9Sb3dJbmRleF06aChiKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX0RUX1Jvd0luZGV4fSkudG9BcnJheSgpfSwKYyxkKX0sMSk7Yy5zZWxlY3Rvci5yb3dzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTtyKCJyb3dzKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvRGF0YVtiXS5uVHJ8fGt9LDEpfSk7cigicm93cygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcighMCwicm93cyIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gaWEoYS5hb0RhdGEsYiwiX2FEYXRhIil9LDEpfSk7digicm93cygpLmNhY2hlKCkiLCJyb3coKS5jYWNoZSgpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihiLGMpe3ZhciBlPWIuYW9EYXRhW2NdO3JldHVybiJzZWFyY2giPT09YT9lLl9hRmlsdGVyRGF0YTplLl9hU29ydERhdGF9LDEpfSk7digicm93cygpLmludmFsaWRhdGUoKSIsInJvdygpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsCmZ1bmN0aW9uKGIsYyl7Y2EoYixjLGEpfSl9KTt2KCJyb3dzKCkuaW5kZXhlcygpIiwicm93KCkuaW5kZXgoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLGIpe3JldHVybiBifSwxKX0pO3YoInJvd3MoKS5yZW1vdmUoKSIsInJvdygpLnJlbW92ZSgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXM7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjLGUpe3ZhciBkPWIuYW9EYXRhO2Quc3BsaWNlKGMsMSk7Zm9yKHZhciBmPTAsZz1kLmxlbmd0aDtmPGc7ZisrKW51bGwhPT1kW2ZdLm5UciYmKGRbZl0ublRyLl9EVF9Sb3dJbmRleD1mKTtoLmluQXJyYXkoYyxiLmFpRGlzcGxheSk7cGEoYi5haURpc3BsYXlNYXN0ZXIsYyk7cGEoYi5haURpc3BsYXksYyk7cGEoYVtlXSxjLCExKTtTYShiKX0pfSk7cigicm93cy5hZGQoKSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3ZhciBjLApmLGcsaD1bXTtmPTA7Zm9yKGc9YS5sZW5ndGg7ZjxnO2YrKyljPWFbZl0sYy5ub2RlTmFtZSYmIlRSIj09PWMubm9kZU5hbWUudG9VcHBlckNhc2UoKT9oLnB1c2gobWEoYixjKVswXSk6aC5wdXNoKEsoYixjKSk7cmV0dXJuIGh9LDEpLGM9dGhpcy5yb3dzKC0xKTtjLnBvcCgpO2MucHVzaC5hcHBseShjLGIudG9BcnJheSgpKTtyZXR1cm4gY30pO3IoInJvdygpIixmdW5jdGlvbihhLGIpe3JldHVybiBiYih0aGlzLnJvd3MoYSxiKSl9KTtyKCJyb3coKS5kYXRhKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29udGV4dDtpZihhPT09aylyZXR1cm4gYi5sZW5ndGgmJnRoaXMubGVuZ3RoP2JbMF0uYW9EYXRhW3RoaXNbMF1dLl9hRGF0YTprO2JbMF0uYW9EYXRhW3RoaXNbMF1dLl9hRGF0YT1hO2NhKGJbMF0sdGhpc1swXSwiZGF0YSIpO3JldHVybiB0aGlzfSk7cigicm93KCkubm9kZSgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXMuY29udGV4dDtyZXR1cm4gYS5sZW5ndGgmJnRoaXMubGVuZ3RoPwphWzBdLmFvRGF0YVt0aGlzWzBdXS5uVHJ8fG51bGw6bnVsbH0pO3IoInJvdy5hZGQoKSIsZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIGgmJmEubGVuZ3RoJiYoYT1hWzBdKTt2YXIgYj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7cmV0dXJuIGEubm9kZU5hbWUmJiJUUiI9PT1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk/bWEoYixhKVswXTpLKGIsYSl9KTtyZXR1cm4gdGhpcy5yb3coYlswXSl9KTt2YXIgY2I9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRleHQ7Yy5sZW5ndGgmJihjPWNbMF0uYW9EYXRhW2IhPT1rP2I6YVswXV0sYy5fZGV0YWlscyYmKGMuX2RldGFpbHMucmVtb3ZlKCksYy5fZGV0YWlsc1Nob3c9ayxjLl9kZXRhaWxzPWspKX0sVmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRleHQ7aWYoYy5sZW5ndGgmJmEubGVuZ3RoKXt2YXIgZT1jWzBdLmFvRGF0YVthWzBdXTtpZihlLl9kZXRhaWxzKXsoZS5fZGV0YWlsc1Nob3c9Yik/ZS5fZGV0YWlscy5pbnNlcnRBZnRlcihlLm5Ucik6CmUuX2RldGFpbHMuZGV0YWNoKCk7dmFyIGQ9Y1swXSxmPW5ldyB0KGQpLGc9ZC5hb0RhdGE7Zi5vZmYoImRyYXcuZHQuRFRfZGV0YWlscyBjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVF9kZXRhaWxzIGRlc3Ryb3kuZHQuRFRfZGV0YWlscyIpOzA8RChnLCJfZGV0YWlscyIpLmxlbmd0aCYmKGYub24oImRyYXcuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYSxiKXtkPT09YiYmZi5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmVxKDApLmVhY2goZnVuY3Rpb24oYSl7YT1nW2FdO2EuX2RldGFpbHNTaG93JiZhLl9kZXRhaWxzLmluc2VydEFmdGVyKGEublRyKX0pfSksZi5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYSxiKXtpZihkPT09Yilmb3IodmFyIGMsZT1hYShiKSxmPTAsaD1nLmxlbmd0aDtmPGg7ZisrKWM9Z1tmXSxjLl9kZXRhaWxzJiZjLl9kZXRhaWxzLmNoaWxkcmVuKCJ0ZFtjb2xzcGFuXSIpLmF0dHIoImNvbHNwYW4iLGUpfSksZi5vbigiZGVzdHJveS5kdC5EVF9kZXRhaWxzIiwKZnVuY3Rpb24oYSxiKXtpZihkPT09Yilmb3IodmFyIGM9MCxlPWcubGVuZ3RoO2M8ZTtjKyspZ1tjXS5fZGV0YWlscyYmY2IoZixjKX0pKX19fTtyKCJyb3coKS5jaGlsZCgpIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGV4dDtpZihhPT09aylyZXR1cm4gYy5sZW5ndGgmJnRoaXMubGVuZ3RoP2NbMF0uYW9EYXRhW3RoaXNbMF1dLl9kZXRhaWxzOms7aWYoITA9PT1hKXRoaXMuY2hpbGQuc2hvdygpO2Vsc2UgaWYoITE9PT1hKWNiKHRoaXMpO2Vsc2UgaWYoYy5sZW5ndGgmJnRoaXMubGVuZ3RoKXt2YXIgZT1jWzBdLGM9Y1swXS5hb0RhdGFbdGhpc1swXV0sZD1bXSxmPWZ1bmN0aW9uKGEsYil7aWYoaC5pc0FycmF5KGEpfHxhIGluc3RhbmNlb2YgaClmb3IodmFyIGM9MCxrPWEubGVuZ3RoO2M8aztjKyspZihhW2NdLGIpO2Vsc2UgYS5ub2RlTmFtZSYmInRyIj09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT9kLnB1c2goYSk6KGM9aCgiPHRyPjx0ZC8+PC90cj4iKS5hZGRDbGFzcyhiKSwKaCgidGQiLGMpLmFkZENsYXNzKGIpLmh0bWwoYSlbMF0uY29sU3Bhbj1hYShlKSxkLnB1c2goY1swXSkpfTtmKGEsYik7Yy5fZGV0YWlscyYmYy5fZGV0YWlscy5yZW1vdmUoKTtjLl9kZXRhaWxzPWgoZCk7Yy5fZGV0YWlsc1Nob3cmJmMuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYy5uVHIpfXJldHVybiB0aGlzfSk7cihbInJvdygpLmNoaWxkLnNob3coKSIsInJvdygpLmNoaWxkKCkuc2hvdygpIl0sZnVuY3Rpb24oKXtWYih0aGlzLCEwKTtyZXR1cm4gdGhpc30pO3IoWyJyb3coKS5jaGlsZC5oaWRlKCkiLCJyb3coKS5jaGlsZCgpLmhpZGUoKSJdLGZ1bmN0aW9uKCl7VmIodGhpcywhMSk7cmV0dXJuIHRoaXN9KTtyKFsicm93KCkuY2hpbGQucmVtb3ZlKCkiLCJyb3coKS5jaGlsZCgpLnJlbW92ZSgpIl0sZnVuY3Rpb24oKXtjYih0aGlzKTtyZXR1cm4gdGhpc30pO3IoInJvdygpLmNoaWxkLmlzU2hvd24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiYKdGhpcy5sZW5ndGg/YVswXS5hb0RhdGFbdGhpc1swXV0uX2RldGFpbHNTaG93fHwhMTohMX0pO3ZhciBkYz0vXiguKyk6KG5hbWV8dmlzSWR4fHZpc2libGUpJC8sV2I9ZnVuY3Rpb24oYSxiLGMsZSxkKXtmb3IodmFyIGM9W10sZT0wLGY9ZC5sZW5ndGg7ZTxmO2UrKyljLnB1c2goeChhLGRbZV0sYikpO3JldHVybiBjfTtyKCJjb2x1bW5zKCkiLGZ1bmN0aW9uKGEsYil7YT09PWs/YT0iIjpoLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7dmFyIGI9YWIoYiksYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7dmFyIGQ9YSxmPWIsZz1jLmFvQ29sdW1ucyxqPUQoZywic05hbWUiKSxpPUQoZywiblRoIik7cmV0dXJuICRhKCJjb2x1bW4iLGQsZnVuY3Rpb24oYSl7dmFyIGI9UGIoYSk7aWYoYT09PSIiKXJldHVybiBWKGcubGVuZ3RoKTtpZihiIT09bnVsbClyZXR1cm5bYj49MD9iOmcubGVuZ3RoK2JdO2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIil7dmFyIGQ9Q2EoYywKZik7cmV0dXJuIGgubWFwKGcsZnVuY3Rpb24oYixmKXtyZXR1cm4gYShmLFdiKGMsZiwwLDAsZCksaVtmXSk/ZjpudWxsfSl9dmFyIGs9dHlwZW9mIGE9PT0ic3RyaW5nIj9hLm1hdGNoKGRjKToiIjtpZihrKXN3aXRjaChrWzJdKXtjYXNlICJ2aXNJZHgiOmNhc2UgInZpc2libGUiOmI9cGFyc2VJbnQoa1sxXSwxMCk7aWYoYjwwKXt2YXIgbT1oLm1hcChnLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYlZpc2libGU/YjpudWxsfSk7cmV0dXJuW21bbS5sZW5ndGgrYl1dfXJldHVybltsYShjLGIpXTtjYXNlICJuYW1lIjpyZXR1cm4gaC5tYXAoaixmdW5jdGlvbihhLGIpe3JldHVybiBhPT09a1sxXT9iOm51bGx9KX1lbHNlIHJldHVybiBoKGkpLmZpbHRlcihhKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gaC5pbkFycmF5KHRoaXMsaSl9KS50b0FycmF5KCl9LGMsZil9LDEpO2Muc2VsZWN0b3IuY29scz1hO2Muc2VsZWN0b3Iub3B0cz1iO3JldHVybiBjfSk7digiY29sdW1ucygpLmhlYWRlcigpIiwKImNvbHVtbigpLmhlYWRlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm5UaH0sMSl9KTt2KCJjb2x1bW5zKCkuZm9vdGVyKCkiLCJjb2x1bW4oKS5mb290ZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvQ29sdW1uc1tiXS5uVGZ9LDEpfSk7digiY29sdW1ucygpLmRhdGEoKSIsImNvbHVtbigpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLFdiLDEpfSk7digiY29sdW1ucygpLmRhdGFTcmMoKSIsImNvbHVtbigpLmRhdGFTcmMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvQ29sdW1uc1tiXS5tRGF0YX0sMSl9KTt2KCJjb2x1bW5zKCkuY2FjaGUoKSIsImNvbHVtbigpLmNhY2hlKCkiLApmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLGZ1bmN0aW9uKGIsYyxlLGQsZil7cmV0dXJuIGlhKGIuYW9EYXRhLGYsInNlYXJjaCI9PT1hPyJfYUZpbHRlckRhdGEiOiJfYVNvcnREYXRhIixjKX0sMSl9KTt2KCJjb2x1bW5zKCkubm9kZXMoKSIsImNvbHVtbigpLm5vZGVzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihhLGIsYyxlLGQpe3JldHVybiBpYShhLmFvRGF0YSxkLCJhbkNlbGxzIixiKX0sMSl9KTt2KCJjb2x1bW5zKCkudmlzaWJsZSgpIiwiY29sdW1uKCkudmlzaWJsZSgpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGMsZSl7aWYoYT09PWspcmV0dXJuIGMuYW9Db2x1bW5zW2VdLmJWaXNpYmxlO3ZhciBkPWMuYW9Db2x1bW5zLGY9ZFtlXSxnPWMuYW9EYXRhLGosaSxtO2lmKGEhPT1rJiZmLmJWaXNpYmxlIT09YSl7aWYoYSl7dmFyIGw9CmguaW5BcnJheSghMCxEKGQsImJWaXNpYmxlIiksZSsxKTtqPTA7Zm9yKGk9Zy5sZW5ndGg7ajxpO2orKyltPWdbal0ublRyLGQ9Z1tqXS5hbkNlbGxzLG0mJm0uaW5zZXJ0QmVmb3JlKGRbZV0sZFtsXXx8bnVsbCl9ZWxzZSBoKEQoYy5hb0RhdGEsImFuQ2VsbHMiLGUpKS5kZXRhY2goKTtmLmJWaXNpYmxlPWE7ZWEoYyxjLmFvSGVhZGVyKTtlYShjLGMuYW9Gb290ZXIpO2lmKGI9PT1rfHxiKVgoYyksKGMub1Njcm9sbC5zWHx8Yy5vU2Nyb2xsLnNZKSYmWShjKTt3KGMsbnVsbCwiY29sdW1uLXZpc2liaWxpdHkiLFtjLGUsYV0pO3lhKGMpfX0pfSk7digiY29sdW1ucygpLmluZGV4ZXMoKSIsImNvbHVtbigpLmluZGV4KCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGIsYyl7cmV0dXJuInZpc2libGUiPT09YT8kKGIsYyk6Y30sMSl9KTtyKCJjb2x1bW5zLmFkanVzdCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsCmZ1bmN0aW9uKGEpe1goYSl9LDEpfSk7cigiY29sdW1uLmluZGV4KCkiLGZ1bmN0aW9uKGEsYil7aWYoMCE9PXRoaXMuY29udGV4dC5sZW5ndGgpe3ZhciBjPXRoaXMuY29udGV4dFswXTtpZigiZnJvbVZpc2libGUiPT09YXx8InRvRGF0YSI9PT1hKXJldHVybiBsYShjLGIpO2lmKCJmcm9tRGF0YSI9PT1hfHwidG9WaXNpYmxlIj09PWEpcmV0dXJuICQoYyxiKX19KTtyKCJjb2x1bW4oKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYmIodGhpcy5jb2x1bW5zKGEsYikpfSk7cigiY2VsbHMoKSIsZnVuY3Rpb24oYSxiLGMpe2guaXNQbGFpbk9iamVjdChhKSYmKGEucm93PT09az8oYz1hLGE9bnVsbCk6KGM9YixiPW51bGwpKTtoLmlzUGxhaW5PYmplY3QoYikmJihjPWIsYj1udWxsKTtpZihudWxsPT09Ynx8Yj09PWspcmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgZD1hLGU9YWIoYyksZj1iLmFvRGF0YSxnPUNhKGIsZSksaT1TYihpYShmLGcsImFuQ2VsbHMiKSksCmo9aChbXS5jb25jYXQuYXBwbHkoW10saSkpLGwsbT1iLmFvQ29sdW1ucy5sZW5ndGgsbyxyLHQscyx1LHY7cmV0dXJuICRhKCJjZWxsIixkLGZ1bmN0aW9uKGEpe3ZhciBjPXR5cGVvZiBhPT09ImZ1bmN0aW9uIjtpZihhPT09bnVsbHx8YT09PWt8fGMpe289W107cj0wO2Zvcih0PWcubGVuZ3RoO3I8dDtyKyspe2w9Z1tyXTtmb3Iocz0wO3M8bTtzKyspe3U9e3JvdzpsLGNvbHVtbjpzfTtpZihjKXt2PWIuYW9EYXRhW2xdO2EodSx4KGIsbCxzKSx2LmFuQ2VsbHM/di5hbkNlbGxzW3NdOm51bGwpJiZvLnB1c2godSl9ZWxzZSBvLnB1c2godSl9fXJldHVybiBvfXJldHVybiBoLmlzUGxhaW5PYmplY3QoYSk/W2FdOmouZmlsdGVyKGEpLm1hcChmdW5jdGlvbihhLGIpe2w9Yi5wYXJlbnROb2RlLl9EVF9Sb3dJbmRleDtyZXR1cm57cm93OmwsY29sdW1uOmguaW5BcnJheShiLGZbbF0uYW5DZWxscyl9fSkudG9BcnJheSgpfSxiLGUpfSk7dmFyIGU9dGhpcy5jb2x1bW5zKGIsYyksZD10aGlzLnJvd3MoYSwKYyksZixnLGosaSxtLGw9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEsYil7Zj1bXTtnPTA7Zm9yKGo9ZFtiXS5sZW5ndGg7ZzxqO2crKyl7aT0wO2ZvcihtPWVbYl0ubGVuZ3RoO2k8bTtpKyspZi5wdXNoKHtyb3c6ZFtiXVtnXSxjb2x1bW46ZVtiXVtpXX0pfXJldHVybiBmfSwxKTtoLmV4dGVuZChsLnNlbGVjdG9yLHtjb2xzOmIscm93czphLG9wdHM6Y30pO3JldHVybiBsfSk7digiY2VsbHMoKS5ub2RlcygpIiwiY2VsbCgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybihhPWEuYW9EYXRhW2JdLmFuQ2VsbHMpP2FbY106a30sMSl9KTtyKCJjZWxscygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiB4KGEsYixjKX0sMSl9KTt2KCJjZWxscygpLmNhY2hlKCkiLCJjZWxsKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7YT0KInNlYXJjaCI9PT1hPyJfYUZpbHRlckRhdGEiOiJfYVNvcnREYXRhIjtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYixjLGUpe3JldHVybiBiLmFvRGF0YVtjXVthXVtlXX0sMSl9KTt2KCJjZWxscygpLnJlbmRlcigpIiwiY2VsbCgpLnJlbmRlcigpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYixjLGUpe3JldHVybiB4KGIsYyxlLGEpfSwxKX0pO3YoImNlbGxzKCkuaW5kZXhlcygpIiwiY2VsbCgpLmluZGV4KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm57cm93OmIsY29sdW1uOmMsY29sdW1uVmlzaWJsZTokKGEsYyl9fSwxKX0pO3YoImNlbGxzKCkuaW52YWxpZGF0ZSgpIiwiY2VsbCgpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGIsYyxlKXtjYShiLGMsYSxlKX0pfSk7cigiY2VsbCgpIiwKZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiYih0aGlzLmNlbGxzKGEsYixjKSl9KTtyKCJjZWxsKCkuZGF0YSgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQsYz10aGlzWzBdO2lmKGE9PT1rKXJldHVybiBiLmxlbmd0aCYmYy5sZW5ndGg/eChiWzBdLGNbMF0ucm93LGNbMF0uY29sdW1uKTprO0lhKGJbMF0sY1swXS5yb3csY1swXS5jb2x1bW4sYSk7Y2EoYlswXSxjWzBdLnJvdywiZGF0YSIsY1swXS5jb2x1bW4pO3JldHVybiB0aGlzfSk7cigib3JkZXIoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRleHQ7aWYoYT09PWspcmV0dXJuIDAhPT1jLmxlbmd0aD9jWzBdLmFhU29ydGluZzprOyJudW1iZXIiPT09dHlwZW9mIGE/YT1bW2EsYl1dOmguaXNBcnJheShhWzBdKXx8KGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtiLmFhU29ydGluZz1hLnNsaWNlKCl9KX0pOwpyKCJvcmRlci5saXN0ZW5lcigpIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtPYShlLGEsYixjKX0pfSk7cihbImNvbHVtbnMoKS5vcmRlcigpIiwiY29sdW1uKCkub3JkZXIoKSJdLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjLGUpe3ZhciBkPVtdO2guZWFjaChiW2VdLGZ1bmN0aW9uKGIsYyl7ZC5wdXNoKFtjLGFdKX0pO2MuYWFTb3J0aW5nPWR9KX0pO3IoInNlYXJjaCgpIixmdW5jdGlvbihhLGIsYyxlKXt2YXIgZD10aGlzLmNvbnRleHQ7cmV0dXJuIGE9PT1rPzAhPT1kLmxlbmd0aD9kWzBdLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoOms6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGQpe2Qub0ZlYXR1cmVzLmJGaWx0ZXImJmZhKGQsaC5leHRlbmQoe30sZC5vUHJldmlvdXNTZWFyY2gse3NTZWFyY2g6YSsiIixiUmVnZXg6bnVsbD09PWI/ITE6CmIsYlNtYXJ0Om51bGw9PT1jPyEwOmMsYkNhc2VJbnNlbnNpdGl2ZTpudWxsPT09ZT8hMDplfSksMSl9KX0pO3YoImNvbHVtbnMoKS5zZWFyY2goKSIsImNvbHVtbigpLnNlYXJjaCgpIixmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihkLGYpe3ZhciBnPWQuYW9QcmVTZWFyY2hDb2xzO2lmKGE9PT1rKXJldHVybiBnW2ZdLnNTZWFyY2g7ZC5vRmVhdHVyZXMuYkZpbHRlciYmKGguZXh0ZW5kKGdbZl0se3NTZWFyY2g6YSsiIixiUmVnZXg6bnVsbD09PWI/ITE6YixiU21hcnQ6bnVsbD09PWM/ITA6YyxiQ2FzZUluc2Vuc2l0aXZlOm51bGw9PT1lPyEwOmV9KSxmYShkLGQub1ByZXZpb3VzU2VhcmNoLDEpKX0pfSk7cigic3RhdGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0Lmxlbmd0aD90aGlzLmNvbnRleHRbMF0ub1NhdmVkU3RhdGU6bnVsbH0pO3IoInN0YXRlLmNsZWFyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIiwKZnVuY3Rpb24oYSl7YS5mblN0YXRlU2F2ZUNhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSx7fSl9KX0pO3IoInN0YXRlLmxvYWRlZCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5vTG9hZGVkU3RhdGU6bnVsbH0pO3IoInN0YXRlLnNhdmUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3lhKGEpfSl9KTttLnZlcnNpb25DaGVjaz1tLmZuVmVyc2lvbkNoZWNrPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1tLnZlcnNpb24uc3BsaXQoIi4iKSxhPWEuc3BsaXQoIi4iKSxjLGUsZD0wLGY9YS5sZW5ndGg7ZDxmO2QrKylpZihjPXBhcnNlSW50KGJbZF0sMTApfHwwLGU9cGFyc2VJbnQoYVtkXSwxMCl8fDAsYyE9PWUpcmV0dXJuIGM+ZTtyZXR1cm4hMH07bS5pc0RhdGFUYWJsZT1tLmZuSXNEYXRhVGFibGU9ZnVuY3Rpb24oYSl7dmFyIGI9aChhKS5nZXQoMCksYz0hMTtoLmVhY2gobS5zZXR0aW5ncywKZnVuY3Rpb24oYSxkKXt2YXIgZj1kLm5TY3JvbGxIZWFkP2goInRhYmxlIixkLm5TY3JvbGxIZWFkKVswXTpudWxsLGc9ZC5uU2Nyb2xsRm9vdD9oKCJ0YWJsZSIsZC5uU2Nyb2xsRm9vdClbMF06bnVsbDtpZihkLm5UYWJsZT09PWJ8fGY9PT1ifHxnPT09YiljPSEwfSk7cmV0dXJuIGN9O20udGFibGVzPW0uZm5UYWJsZXM9ZnVuY3Rpb24oYSl7cmV0dXJuIGgubWFwKG0uc2V0dGluZ3MsZnVuY3Rpb24oYil7aWYoIWF8fGEmJmgoYi5uVGFibGUpLmlzKCI6dmlzaWJsZSIpKXJldHVybiBiLm5UYWJsZX0pfTttLnV0aWw9e3Rocm90dGxlOnVhLGVzY2FwZVJlZ2V4OnZhfTttLmNhbWVsVG9IdW5nYXJpYW49SDtyKCIkKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5yb3dzKGIpLm5vZGVzKCksYz1oKGMpO3JldHVybiBoKFtdLmNvbmNhdChjLmZpbHRlcihhKS50b0FycmF5KCksYy5maW5kKGEpLnRvQXJyYXkoKSkpfSk7aC5lYWNoKFsib24iLCJvbmUiLCJvZmYiXSxmdW5jdGlvbihhLApiKXtyKGIrIigpIixmdW5jdGlvbigpe3ZhciBhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7YVswXS5tYXRjaCgvXC5kdFxiLyl8fChhWzBdKz0iLmR0Iik7dmFyIGU9aCh0aGlzLnRhYmxlcygpLm5vZGVzKCkpO2VbYl0uYXBwbHkoZSxhKTtyZXR1cm4gdGhpc30pfSk7cigiY2xlYXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe29hKGEpfSl9KTtyKCJzZXR0aW5ncygpIixmdW5jdGlvbigpe3JldHVybiBuZXcgdCh0aGlzLmNvbnRleHQsdGhpcy5jb250ZXh0KX0pO3IoImluaXQoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoP2FbMF0ub0luaXQ6bnVsbH0pO3IoImRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBEKGEuYW9EYXRhLCJfYURhdGEiKX0pLmZsYXR0ZW4oKX0pO3IoImRlc3Ryb3koKSIsCmZ1bmN0aW9uKGEpe2E9YXx8ITE7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYz1iLm5UYWJsZVdyYXBwZXIucGFyZW50Tm9kZSxlPWIub0NsYXNzZXMsZD1iLm5UYWJsZSxmPWIublRCb2R5LGc9Yi5uVEhlYWQsaj1iLm5URm9vdCxpPWgoZCksZj1oKGYpLGs9aChiLm5UYWJsZVdyYXBwZXIpLGw9aC5tYXAoYi5hb0RhdGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRyfSkscTtiLmJEZXN0cm95aW5nPSEwO3coYiwiYW9EZXN0cm95Q2FsbGJhY2siLCJkZXN0cm95IixbYl0pO2F8fChuZXcgdChiKSkuY29sdW1ucygpLnZpc2libGUoITApO2sudW5iaW5kKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikudW5iaW5kKCIuRFQiKTtoKEVhKS51bmJpbmQoIi5EVC0iK2Iuc0luc3RhbmNlKTtkIT1nLnBhcmVudE5vZGUmJihpLmNoaWxkcmVuKCJ0aGVhZCIpLmRldGFjaCgpLGkuYXBwZW5kKGcpKTtqJiZkIT1qLnBhcmVudE5vZGUmJihpLmNoaWxkcmVuKCJ0Zm9vdCIpLmRldGFjaCgpLAppLmFwcGVuZChqKSk7aS5kZXRhY2goKTtrLmRldGFjaCgpO2IuYWFTb3J0aW5nPVtdO2IuYWFTb3J0aW5nRml4ZWQ9W107eGEoYik7aChsKS5yZW1vdmVDbGFzcyhiLmFzU3RyaXBlQ2xhc3Nlcy5qb2luKCIgIikpO2goInRoLCB0ZCIsZykucmVtb3ZlQ2xhc3MoZS5zU29ydGFibGUrIiAiK2Uuc1NvcnRhYmxlQXNjKyIgIitlLnNTb3J0YWJsZURlc2MrIiAiK2Uuc1NvcnRhYmxlTm9uZSk7Yi5iSlVJJiYoaCgidGggc3Bhbi4iK2Uuc1NvcnRJY29uKyIsIHRkIHNwYW4uIitlLnNTb3J0SWNvbixnKS5kZXRhY2goKSxoKCJ0aCwgdGQiLGcpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1oKCJkaXYuIitlLnNTb3J0SlVJV3JhcHBlcix0aGlzKTtoKHRoaXMpLmFwcGVuZChhLmNvbnRlbnRzKCkpO2EuZGV0YWNoKCl9KSk7IWEmJmMmJmMuaW5zZXJ0QmVmb3JlKGQsYi5uVGFibGVSZWluc2VydEJlZm9yZSk7Zi5jaGlsZHJlbigpLmRldGFjaCgpO2YuYXBwZW5kKGwpO2kuY3NzKCJ3aWR0aCIsYi5zRGVzdHJveVdpZHRoKS5yZW1vdmVDbGFzcyhlLnNUYWJsZSk7CihxPWIuYXNEZXN0cm95U3RyaXBlcy5sZW5ndGgpJiZmLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbihhKXtoKHRoaXMpLmFkZENsYXNzKGIuYXNEZXN0cm95U3RyaXBlc1thJXFdKX0pO2M9aC5pbkFycmF5KGIsbS5zZXR0aW5ncyk7LTEhPT1jJiZtLnNldHRpbmdzLnNwbGljZShjLDEpfSl9KTtoLmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24oYSxiKXtyKGIrInMoKS5ldmVyeSgpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcihiLGZ1bmN0aW9uKGUsZCxmKXthLmNhbGwoKG5ldyB0KGUpKVtiXShkLGYpKX0pfSl9KTtyKCJpMThuKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzLmNvbnRleHRbMF0sYT1SKGEpKGUub0xhbmd1YWdlKTthPT09ayYmKGE9Yik7YyE9PWsmJmguaXNQbGFpbk9iamVjdChhKSYmKGE9YVtjXSE9PWs/YVtjXTphLl8pO3JldHVybiBhLnJlcGxhY2UoIiVkIixjKX0pO20udmVyc2lvbj0iMS4xMC43IjttLnNldHRpbmdzPQpbXTttLm1vZGVscz17fTttLm1vZGVscy5vU2VhcmNoPXtiQ2FzZUluc2Vuc2l0aXZlOiEwLHNTZWFyY2g6IiIsYlJlZ2V4OiExLGJTbWFydDohMH07bS5tb2RlbHMub1Jvdz17blRyOm51bGwsYW5DZWxsczpudWxsLF9hRGF0YTpbXSxfYVNvcnREYXRhOm51bGwsX2FGaWx0ZXJEYXRhOm51bGwsX3NGaWx0ZXJSb3c6bnVsbCxfc1Jvd1N0cmlwZToiIixzcmM6bnVsbH07bS5tb2RlbHMub0NvbHVtbj17aWR4Om51bGwsYURhdGFTb3J0Om51bGwsYXNTb3J0aW5nOm51bGwsYlNlYXJjaGFibGU6bnVsbCxiU29ydGFibGU6bnVsbCxiVmlzaWJsZTpudWxsLF9zTWFudWFsVHlwZTpudWxsLF9iQXR0clNyYzohMSxmbkNyZWF0ZWRDZWxsOm51bGwsZm5HZXREYXRhOm51bGwsZm5TZXREYXRhOm51bGwsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsblRoOm51bGwsblRmOm51bGwsc0NsYXNzOm51bGwsc0NvbnRlbnRQYWRkaW5nOm51bGwsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLApzU29ydGluZ0NsYXNzOm51bGwsc1NvcnRpbmdDbGFzc0pVSTpudWxsLHNUaXRsZTpudWxsLHNUeXBlOm51bGwsc1dpZHRoOm51bGwsc1dpZHRoT3JpZzpudWxsfTttLmRlZmF1bHRzPXthYURhdGE6bnVsbCxhYVNvcnRpbmc6W1swLCJhc2MiXV0sYWFTb3J0aW5nRml4ZWQ6W10sYWpheDpudWxsLGFMZW5ndGhNZW51OlsxMCwyNSw1MCwxMDBdLGFvQ29sdW1uczpudWxsLGFvQ29sdW1uRGVmczpudWxsLGFvU2VhcmNoQ29sczpbXSxhc1N0cmlwZUNsYXNzZXM6bnVsbCxiQXV0b1dpZHRoOiEwLGJEZWZlclJlbmRlcjohMSxiRGVzdHJveTohMSxiRmlsdGVyOiEwLGJJbmZvOiEwLGJKUXVlcnlVSTohMSxiTGVuZ3RoQ2hhbmdlOiEwLGJQYWdpbmF0ZTohMCxiUHJvY2Vzc2luZzohMSxiUmV0cmlldmU6ITEsYlNjcm9sbENvbGxhcHNlOiExLGJTZXJ2ZXJTaWRlOiExLGJTb3J0OiEwLGJTb3J0TXVsdGk6ITAsYlNvcnRDZWxsc1RvcDohMSxiU29ydENsYXNzZXM6ITAsYlN0YXRlU2F2ZTohMSwKZm5DcmVhdGVkUm93Om51bGwsZm5EcmF3Q2FsbGJhY2s6bnVsbCxmbkZvb3RlckNhbGxiYWNrOm51bGwsZm5Gb3JtYXROdW1iZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLHRoaXMub0xhbmd1YWdlLnNUaG91c2FuZHMpfSxmbkhlYWRlckNhbGxiYWNrOm51bGwsZm5JbmZvQ2FsbGJhY2s6bnVsbCxmbkluaXRDb21wbGV0ZTpudWxsLGZuUHJlRHJhd0NhbGxiYWNrOm51bGwsZm5Sb3dDYWxsYmFjazpudWxsLGZuU2VydmVyRGF0YTpudWxsLGZuU2VydmVyUGFyYW1zOm51bGwsZm5TdGF0ZUxvYWRDYWxsYmFjazpmdW5jdGlvbihhKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoKC0xPT09YS5pU3RhdGVEdXJhdGlvbj9zZXNzaW9uU3RvcmFnZTpsb2NhbFN0b3JhZ2UpLmdldEl0ZW0oIkRhdGFUYWJsZXNfIithLnNJbnN0YW5jZSsiXyIrbG9jYXRpb24ucGF0aG5hbWUpKX1jYXRjaChiKXt9fSxmblN0YXRlTG9hZFBhcmFtczpudWxsLApmblN0YXRlTG9hZGVkOm51bGwsZm5TdGF0ZVNhdmVDYWxsYmFjazpmdW5jdGlvbihhLGIpe3RyeXsoLTE9PT1hLmlTdGF0ZUR1cmF0aW9uP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuc2V0SXRlbSgiRGF0YVRhYmxlc18iK2Euc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSxKU09OLnN0cmluZ2lmeShiKSl9Y2F0Y2goYyl7fX0sZm5TdGF0ZVNhdmVQYXJhbXM6bnVsbCxpU3RhdGVEdXJhdGlvbjo3MjAwLGlEZWZlckxvYWRpbmc6bnVsbCxpRGlzcGxheUxlbmd0aDoxMCxpRGlzcGxheVN0YXJ0OjAsaVRhYkluZGV4OjAsb0NsYXNzZXM6e30sb0xhbmd1YWdlOntvQXJpYTp7c1NvcnRBc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nIixzU29ydERlc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gZGVzY2VuZGluZyJ9LG9QYWdpbmF0ZTp7c0ZpcnN0OiJGaXJzdCIsc0xhc3Q6Ikxhc3QiLHNOZXh0OiJOZXh0IixzUHJldmlvdXM6IlByZXZpb3VzIn0sCnNFbXB0eVRhYmxlOiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSIsc0luZm86IlNob3dpbmcgX1NUQVJUXyB0byBfRU5EXyBvZiBfVE9UQUxfIGVudHJpZXMiLHNJbmZvRW1wdHk6IlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyIsc0luZm9GaWx0ZXJlZDoiKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgZW50cmllcykiLHNJbmZvUG9zdEZpeDoiIixzRGVjaW1hbDoiIixzVGhvdXNhbmRzOiIsIixzTGVuZ3RoTWVudToiU2hvdyBfTUVOVV8gZW50cmllcyIsc0xvYWRpbmdSZWNvcmRzOiJMb2FkaW5nLi4uIixzUHJvY2Vzc2luZzoiUHJvY2Vzc2luZy4uLiIsc1NlYXJjaDoiU2VhcmNoOiIsc1NlYXJjaFBsYWNlaG9sZGVyOiIiLHNVcmw6IiIsc1plcm9SZWNvcmRzOiJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIn0sb1NlYXJjaDpoLmV4dGVuZCh7fSxtLm1vZGVscy5vU2VhcmNoKSxzQWpheERhdGFQcm9wOiJkYXRhIixzQWpheFNvdXJjZTpudWxsLHNEb206ImxmcnRpcCIsc2VhcmNoRGVsYXk6bnVsbCwKc1BhZ2luYXRpb25UeXBlOiJzaW1wbGVfbnVtYmVycyIsc1Njcm9sbFg6IiIsc1Njcm9sbFhJbm5lcjoiIixzU2Nyb2xsWToiIixzU2VydmVyTWV0aG9kOiJHRVQiLHJlbmRlcmVyOm51bGx9O1cobS5kZWZhdWx0cyk7bS5kZWZhdWx0cy5jb2x1bW49e2FEYXRhU29ydDpudWxsLGlEYXRhU29ydDotMSxhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJWaXNpYmxlOiEwLGZuQ3JlYXRlZENlbGw6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxzQ2VsbFR5cGU6InRkIixzQ2xhc3M6IiIsc0NvbnRlbnRQYWRkaW5nOiIiLHNEZWZhdWx0Q29udGVudDpudWxsLHNOYW1lOiIiLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbH07VyhtLmRlZmF1bHRzLmNvbHVtbik7bS5tb2RlbHMub1NldHRpbmdzPXtvRmVhdHVyZXM6e2JBdXRvV2lkdGg6bnVsbCxiRGVmZXJSZW5kZXI6bnVsbCxiRmlsdGVyOm51bGwsCmJJbmZvOm51bGwsYkxlbmd0aENoYW5nZTpudWxsLGJQYWdpbmF0ZTpudWxsLGJQcm9jZXNzaW5nOm51bGwsYlNlcnZlclNpZGU6bnVsbCxiU29ydDpudWxsLGJTb3J0TXVsdGk6bnVsbCxiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JDb2xsYXBzZTpudWxsLGlCYXJXaWR0aDowLHNYOm51bGwsc1hJbm5lcjpudWxsLHNZOm51bGx9LG9MYW5ndWFnZTp7Zm5JbmZvQ2FsbGJhY2s6bnVsbH0sb0Jyb3dzZXI6e2JTY3JvbGxPdmVyc2l6ZTohMSxiU2Nyb2xsYmFyTGVmdDohMX0sYWpheDpudWxsLGFhbkZlYXR1cmVzOltdLGFvRGF0YTpbXSxhaURpc3BsYXk6W10sYWlEaXNwbGF5TWFzdGVyOltdLGFvQ29sdW1uczpbXSxhb0hlYWRlcjpbXSxhb0Zvb3RlcjpbXSxvUHJldmlvdXNTZWFyY2g6e30sYW9QcmVTZWFyY2hDb2xzOltdLGFhU29ydGluZzpudWxsLGFhU29ydGluZ0ZpeGVkOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGFzRGVzdHJveVN0cmlwZXM6W10sCnNEZXN0cm95V2lkdGg6MCxhb1Jvd0NhbGxiYWNrOltdLGFvSGVhZGVyQ2FsbGJhY2s6W10sYW9Gb290ZXJDYWxsYmFjazpbXSxhb0RyYXdDYWxsYmFjazpbXSxhb1Jvd0NyZWF0ZWRDYWxsYmFjazpbXSxhb1ByZURyYXdDYWxsYmFjazpbXSxhb0luaXRDb21wbGV0ZTpbXSxhb1N0YXRlU2F2ZVBhcmFtczpbXSxhb1N0YXRlTG9hZFBhcmFtczpbXSxhb1N0YXRlTG9hZGVkOltdLHNUYWJsZUlkOiIiLG5UYWJsZTpudWxsLG5USGVhZDpudWxsLG5URm9vdDpudWxsLG5UQm9keTpudWxsLG5UYWJsZVdyYXBwZXI6bnVsbCxiRGVmZXJMb2FkaW5nOiExLGJJbml0aWFsaXNlZDohMSxhb09wZW5Sb3dzOltdLHNEb206bnVsbCxzZWFyY2hEZWxheTpudWxsLHNQYWdpbmF0aW9uVHlwZToidHdvX2J1dHRvbiIsaVN0YXRlRHVyYXRpb246MCxhb1N0YXRlU2F2ZTpbXSxhb1N0YXRlTG9hZDpbXSxvU2F2ZWRTdGF0ZTpudWxsLG9Mb2FkZWRTdGF0ZTpudWxsLHNBamF4U291cmNlOm51bGwsc0FqYXhEYXRhUHJvcDpudWxsLApiQWpheERhdGFHZXQ6ITAsanFYSFI6bnVsbCxqc29uOmssb0FqYXhEYXRhOmssZm5TZXJ2ZXJEYXRhOm51bGwsYW9TZXJ2ZXJQYXJhbXM6W10sc1NlcnZlck1ldGhvZDpudWxsLGZuRm9ybWF0TnVtYmVyOm51bGwsYUxlbmd0aE1lbnU6bnVsbCxpRHJhdzowLGJEcmF3aW5nOiExLGlEcmF3RXJyb3I6LTEsX2lEaXNwbGF5TGVuZ3RoOjEwLF9pRGlzcGxheVN0YXJ0OjAsX2lSZWNvcmRzVG90YWw6MCxfaVJlY29yZHNEaXNwbGF5OjAsYkpVSTpudWxsLG9DbGFzc2VzOnt9LGJGaWx0ZXJlZDohMSxiU29ydGVkOiExLGJTb3J0Q2VsbHNUb3A6bnVsbCxvSW5pdDpudWxsLGFvRGVzdHJveUNhbGxiYWNrOltdLGZuUmVjb3Jkc1RvdGFsOmZ1bmN0aW9uKCl7cmV0dXJuInNzcCI9PUIodGhpcyk/MSp0aGlzLl9pUmVjb3Jkc1RvdGFsOnRoaXMuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aH0sZm5SZWNvcmRzRGlzcGxheTpmdW5jdGlvbigpe3JldHVybiJzc3AiPT1CKHRoaXMpPzEqdGhpcy5faVJlY29yZHNEaXNwbGF5Ogp0aGlzLmFpRGlzcGxheS5sZW5ndGh9LGZuRGlzcGxheUVuZDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX2lEaXNwbGF5TGVuZ3RoLGI9dGhpcy5faURpc3BsYXlTdGFydCxjPWIrYSxlPXRoaXMuYWlEaXNwbGF5Lmxlbmd0aCxkPXRoaXMub0ZlYXR1cmVzLGY9ZC5iUGFnaW5hdGU7cmV0dXJuIGQuYlNlcnZlclNpZGU/ITE9PT1mfHwtMT09PWE/YitlOk1hdGgubWluKGIrYSx0aGlzLl9pUmVjb3Jkc0Rpc3BsYXkpOiFmfHxjPmV8fC0xPT09YT9lOmN9LG9JbnN0YW5jZTpudWxsLHNJbnN0YW5jZTpudWxsLGlUYWJJbmRleDowLG5TY3JvbGxIZWFkOm51bGwsblNjcm9sbEZvb3Q6bnVsbCxhTGFzdFNvcnQ6W10sb1BsdWdpbnM6e319O20uZXh0PXU9e2J1dHRvbnM6e30sY2xhc3Nlczp7fSxlcnJNb2RlOiJhbGVydCIsZmVhdHVyZTpbXSxzZWFyY2g6W10sc2VsZWN0b3I6e2NlbGw6W10sY29sdW1uOltdLHJvdzpbXX0saW50ZXJuYWw6e30sbGVnYWN5OnthamF4Om51bGx9LHBhZ2VyOnt9LHJlbmRlcmVyOntwYWdlQnV0dG9uOnt9LApoZWFkZXI6e319LG9yZGVyOnt9LHR5cGU6e2RldGVjdDpbXSxzZWFyY2g6e30sb3JkZXI6e319LF91bmlxdWU6MCxmblZlcnNpb25DaGVjazptLmZuVmVyc2lvbkNoZWNrLGlBcGlJbmRleDowLG9KVUlDbGFzc2VzOnt9LHNWZXJzaW9uOm0udmVyc2lvbn07aC5leHRlbmQodSx7YWZuRmlsdGVyaW5nOnUuc2VhcmNoLGFUeXBlczp1LnR5cGUuZGV0ZWN0LG9mblNlYXJjaDp1LnR5cGUuc2VhcmNoLG9Tb3J0OnUudHlwZS5vcmRlcixhZm5Tb3J0RGF0YTp1Lm9yZGVyLGFvRmVhdHVyZXM6dS5mZWF0dXJlLG9BcGk6dS5pbnRlcm5hbCxvU3RkQ2xhc3Nlczp1LmNsYXNzZXMsb1BhZ2luYXRpb246dS5wYWdlcn0pO2guZXh0ZW5kKG0uZXh0LmNsYXNzZXMse3NUYWJsZToiZGF0YVRhYmxlIixzTm9Gb290ZXI6Im5vLWZvb3RlciIsc1BhZ2VCdXR0b246InBhZ2luYXRlX2J1dHRvbiIsc1BhZ2VCdXR0b25BY3RpdmU6ImN1cnJlbnQiLHNQYWdlQnV0dG9uRGlzYWJsZWQ6ImRpc2FibGVkIixzU3RyaXBlT2RkOiJvZGQiLApzU3RyaXBlRXZlbjoiZXZlbiIsc1Jvd0VtcHR5OiJkYXRhVGFibGVzX2VtcHR5IixzV3JhcHBlcjoiZGF0YVRhYmxlc193cmFwcGVyIixzRmlsdGVyOiJkYXRhVGFibGVzX2ZpbHRlciIsc0luZm86ImRhdGFUYWJsZXNfaW5mbyIsc1BhZ2luZzoiZGF0YVRhYmxlc19wYWdpbmF0ZSBwYWdpbmdfIixzTGVuZ3RoOiJkYXRhVGFibGVzX2xlbmd0aCIsc1Byb2Nlc3Npbmc6ImRhdGFUYWJsZXNfcHJvY2Vzc2luZyIsc1NvcnRBc2M6InNvcnRpbmdfYXNjIixzU29ydERlc2M6InNvcnRpbmdfZGVzYyIsc1NvcnRhYmxlOiJzb3J0aW5nIixzU29ydGFibGVBc2M6InNvcnRpbmdfYXNjX2Rpc2FibGVkIixzU29ydGFibGVEZXNjOiJzb3J0aW5nX2Rlc2NfZGlzYWJsZWQiLHNTb3J0YWJsZU5vbmU6InNvcnRpbmdfZGlzYWJsZWQiLHNTb3J0Q29sdW1uOiJzb3J0aW5nXyIsc0ZpbHRlcklucHV0OiIiLHNMZW5ndGhTZWxlY3Q6IiIsc1Njcm9sbFdyYXBwZXI6ImRhdGFUYWJsZXNfc2Nyb2xsIixzU2Nyb2xsSGVhZDoiZGF0YVRhYmxlc19zY3JvbGxIZWFkIiwKc1Njcm9sbEhlYWRJbm5lcjoiZGF0YVRhYmxlc19zY3JvbGxIZWFkSW5uZXIiLHNTY3JvbGxCb2R5OiJkYXRhVGFibGVzX3Njcm9sbEJvZHkiLHNTY3JvbGxGb290OiJkYXRhVGFibGVzX3Njcm9sbEZvb3QiLHNTY3JvbGxGb290SW5uZXI6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdElubmVyIixzSGVhZGVyVEg6IiIsc0Zvb3RlclRIOiIiLHNTb3J0SlVJQXNjOiIiLHNTb3J0SlVJRGVzYzoiIixzU29ydEpVSToiIixzU29ydEpVSUFzY0FsbG93ZWQ6IiIsc1NvcnRKVUlEZXNjQWxsb3dlZDoiIixzU29ydEpVSVdyYXBwZXI6IiIsc1NvcnRJY29uOiIiLHNKVUlIZWFkZXI6IiIsc0pVSUZvb3RlcjoiIn0pO3ZhciBEYT0iIixEYT0iIixGPURhKyJ1aS1zdGF0ZS1kZWZhdWx0IixqYT1EYSsiY3NzX3JpZ2h0IHVpLWljb24gdWktaWNvbi0iLFhiPURhKyJmZy10b29sYmFyIHVpLXRvb2xiYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1oZWxwZXItY2xlYXJmaXgiO2guZXh0ZW5kKG0uZXh0Lm9KVUlDbGFzc2VzLAptLmV4dC5jbGFzc2VzLHtzUGFnZUJ1dHRvbjoiZmctYnV0dG9uIHVpLWJ1dHRvbiAiK0Ysc1BhZ2VCdXR0b25BY3RpdmU6InVpLXN0YXRlLWRpc2FibGVkIixzUGFnZUJ1dHRvbkRpc2FibGVkOiJ1aS1zdGF0ZS1kaXNhYmxlZCIsc1BhZ2luZzoiZGF0YVRhYmxlc19wYWdpbmF0ZSBmZy1idXR0b25zZXQgdWktYnV0dG9uc2V0IGZnLWJ1dHRvbnNldC1tdWx0aSB1aS1idXR0b25zZXQtbXVsdGkgcGFnaW5nXyIsc1NvcnRBc2M6RisiIHNvcnRpbmdfYXNjIixzU29ydERlc2M6RisiIHNvcnRpbmdfZGVzYyIsc1NvcnRhYmxlOkYrIiBzb3J0aW5nIixzU29ydGFibGVBc2M6RisiIHNvcnRpbmdfYXNjX2Rpc2FibGVkIixzU29ydGFibGVEZXNjOkYrIiBzb3J0aW5nX2Rlc2NfZGlzYWJsZWQiLHNTb3J0YWJsZU5vbmU6RisiIHNvcnRpbmdfZGlzYWJsZWQiLHNTb3J0SlVJQXNjOmphKyJ0cmlhbmdsZS0xLW4iLHNTb3J0SlVJRGVzYzpqYSsidHJpYW5nbGUtMS1zIixzU29ydEpVSTpqYSsiY2FyYXQtMi1uLXMiLApzU29ydEpVSUFzY0FsbG93ZWQ6amErImNhcmF0LTEtbiIsc1NvcnRKVUlEZXNjQWxsb3dlZDpqYSsiY2FyYXQtMS1zIixzU29ydEpVSVdyYXBwZXI6IkRhdGFUYWJsZXNfc29ydF93cmFwcGVyIixzU29ydEljb246IkRhdGFUYWJsZXNfc29ydF9pY29uIixzU2Nyb2xsSGVhZDoiZGF0YVRhYmxlc19zY3JvbGxIZWFkICIrRixzU2Nyb2xsRm9vdDoiZGF0YVRhYmxlc19zY3JvbGxGb290ICIrRixzSGVhZGVyVEg6RixzRm9vdGVyVEg6RixzSlVJSGVhZGVyOlhiKyIgdWktY29ybmVyLXRsIHVpLWNvcm5lci10ciIsc0pVSUZvb3RlcjpYYisiIHVpLWNvcm5lci1ibCB1aS1jb3JuZXItYnIifSk7dmFyIE1iPW0uZXh0LnBhZ2VyO2guZXh0ZW5kKE1iLHtzaW1wbGU6ZnVuY3Rpb24oKXtyZXR1cm5bInByZXZpb3VzIiwibmV4dCJdfSxmdWxsOmZ1bmN0aW9uKCl7cmV0dXJuWyJmaXJzdCIsInByZXZpb3VzIiwibmV4dCIsImxhc3QiXX0sc2ltcGxlX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bInByZXZpb3VzIiwKV2EoYSxiKSwibmV4dCJdfSxmdWxsX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bImZpcnN0IiwicHJldmlvdXMiLFdhKGEsYiksIm5leHQiLCJsYXN0Il19LF9udW1iZXJzOldhLG51bWJlcnNfbGVuZ3RoOjd9KTtoLmV4dGVuZCghMCxtLmV4dC5yZW5kZXJlcix7cGFnZUJ1dHRvbjp7XzpmdW5jdGlvbihhLGIsYyxlLGQsZil7dmFyIGc9YS5vQ2xhc3NlcyxqPWEub0xhbmd1YWdlLm9QYWdpbmF0ZSxpLGssbD0wLG09ZnVuY3Rpb24oYixlKXt2YXIgbixyLHQscyx1PWZ1bmN0aW9uKGIpe1RhKGEsYi5kYXRhLmFjdGlvbix0cnVlKX07bj0wO2ZvcihyPWUubGVuZ3RoO248cjtuKyspe3M9ZVtuXTtpZihoLmlzQXJyYXkocykpe3Q9aCgiPCIrKHMuRFRfZWx8fCJkaXYiKSsiLz4iKS5hcHBlbmRUbyhiKTttKHQscyl9ZWxzZXtrPWk9IiI7c3dpdGNoKHMpe2Nhc2UgImVsbGlwc2lzIjpiLmFwcGVuZCgnPHNwYW4gY2xhc3M9ImVsbGlwc2lzIj4mI3gyMDI2Ozwvc3Bhbj4nKTticmVhazsKY2FzZSAiZmlyc3QiOmk9ai5zRmlyc3Q7az1zKyhkPjA/IiI6IiAiK2cuc1BhZ2VCdXR0b25EaXNhYmxlZCk7YnJlYWs7Y2FzZSAicHJldmlvdXMiOmk9ai5zUHJldmlvdXM7az1zKyhkPjA/IiI6IiAiK2cuc1BhZ2VCdXR0b25EaXNhYmxlZCk7YnJlYWs7Y2FzZSAibmV4dCI6aT1qLnNOZXh0O2s9cysoZDxmLTE/IiI6IiAiK2cuc1BhZ2VCdXR0b25EaXNhYmxlZCk7YnJlYWs7Y2FzZSAibGFzdCI6aT1qLnNMYXN0O2s9cysoZDxmLTE/IiI6IiAiK2cuc1BhZ2VCdXR0b25EaXNhYmxlZCk7YnJlYWs7ZGVmYXVsdDppPXMrMTtrPWQ9PT1zP2cuc1BhZ2VCdXR0b25BY3RpdmU6IiJ9aWYoaSl7dD1oKCI8YT4iLHsiY2xhc3MiOmcuc1BhZ2VCdXR0b24rIiAiK2ssImFyaWEtY29udHJvbHMiOmEuc1RhYmxlSWQsImRhdGEtZHQtaWR4IjpsLHRhYmluZGV4OmEuaVRhYkluZGV4LGlkOmM9PT0wJiZ0eXBlb2Ygcz09PSJzdHJpbmciP2Euc1RhYmxlSWQrIl8iK3M6bnVsbH0pLmh0bWwoaSkuYXBwZW5kVG8oYik7ClZhKHQse2FjdGlvbjpzfSx1KTtsKyt9fX19LG47dHJ5e249aChRLmFjdGl2ZUVsZW1lbnQpLmRhdGEoImR0LWlkeCIpfWNhdGNoKHIpe31tKGgoYikuZW1wdHkoKSxlKTtuJiZoKGIpLmZpbmQoIltkYXRhLWR0LWlkeD0iK24rIl0iKS5mb2N1cygpfX19KTtoLmV4dGVuZChtLmV4dC50eXBlLmRldGVjdCxbZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gWmEoYSxjKT8ibnVtIitjOm51bGx9LGZ1bmN0aW9uKGEpe2lmKGEmJiEoYSBpbnN0YW5jZW9mIERhdGUpJiYoIWFjLnRlc3QoYSl8fCFiYy50ZXN0KGEpKSlyZXR1cm4gbnVsbDt2YXIgYj1EYXRlLnBhcnNlKGEpO3JldHVybiBudWxsIT09YiYmIWlzTmFOKGIpfHxKKGEpPyJkYXRlIjpudWxsfSxmdW5jdGlvbihhLGIpe3ZhciBjPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBaYShhLGMsITApPyJudW0tZm10IitjOm51bGx9LGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vTGFuZ3VhZ2Uuc0RlY2ltYWw7CnJldHVybiBSYihhLGMpPyJodG1sLW51bSIrYzpudWxsfSxmdW5jdGlvbihhLGIpe3ZhciBjPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBSYihhLGMsITApPyJodG1sLW51bS1mbXQiK2M6bnVsbH0sZnVuY3Rpb24oYSl7cmV0dXJuIEooYSl8fCJzdHJpbmciPT09dHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCI8Iik/Imh0bWwiOm51bGx9XSk7aC5leHRlbmQobS5leHQudHlwZS5zZWFyY2gse2h0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIEooYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShPYiwiICIpLnJlcGxhY2UoQmEsIiIpOiIifSxzdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIEooYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShPYiwiICIpOmF9fSk7dmFyIEFhPWZ1bmN0aW9uKGEsYixjLGUpe2lmKDAhPT1hJiYoIWF8fCItIj09PWEpKXJldHVybi1JbmZpbml0eTtiJiYoYT1RYihhLGIpKTthLnJlcGxhY2UmJihjJiYoYT1hLnJlcGxhY2UoYywiIikpLAplJiYoYT1hLnJlcGxhY2UoZSwiIikpKTtyZXR1cm4gMSphfTtoLmV4dGVuZCh1LnR5cGUub3JkZXIseyJkYXRlLXByZSI6ZnVuY3Rpb24oYSl7cmV0dXJuIERhdGUucGFyc2UoYSl8fDB9LCJodG1sLXByZSI6ZnVuY3Rpb24oYSl7cmV0dXJuIEooYSk/IiI6YS5yZXBsYWNlP2EucmVwbGFjZSgvPC4qPz4vZywiIikudG9Mb3dlckNhc2UoKTphKyIifSwic3RyaW5nLXByZSI6ZnVuY3Rpb24oYSl7cmV0dXJuIEooYSk/IiI6InN0cmluZyI9PT10eXBlb2YgYT9hLnRvTG93ZXJDYXNlKCk6IWEudG9TdHJpbmc/IiI6YS50b1N0cmluZygpfSwic3RyaW5nLWFzYyI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYTxiPy0xOmE+Yj8xOjB9LCJzdHJpbmctZGVzYyI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYTxiPzE6YT5iPy0xOjB9fSk7ZGIoIiIpO2guZXh0ZW5kKCEwLG0uZXh0LnJlbmRlcmVyLHtoZWFkZXI6e186ZnVuY3Rpb24oYSxiLGMsZSl7aChhLm5UYWJsZSkub24oIm9yZGVyLmR0LkRUIixmdW5jdGlvbihkLApmLGcsaCl7aWYoYT09PWYpe2Q9Yy5pZHg7Yi5yZW1vdmVDbGFzcyhjLnNTb3J0aW5nQ2xhc3MrIiAiK2Uuc1NvcnRBc2MrIiAiK2Uuc1NvcnREZXNjKS5hZGRDbGFzcyhoW2RdPT0iYXNjIj9lLnNTb3J0QXNjOmhbZF09PSJkZXNjIj9lLnNTb3J0RGVzYzpjLnNTb3J0aW5nQ2xhc3MpfX0pfSxqcXVlcnl1aTpmdW5jdGlvbihhLGIsYyxlKXtoKCI8ZGl2Lz4iKS5hZGRDbGFzcyhlLnNTb3J0SlVJV3JhcHBlcikuYXBwZW5kKGIuY29udGVudHMoKSkuYXBwZW5kKGgoIjxzcGFuLz4iKS5hZGRDbGFzcyhlLnNTb3J0SWNvbisiICIrYy5zU29ydGluZ0NsYXNzSlVJKSkuYXBwZW5kVG8oYik7aChhLm5UYWJsZSkub24oIm9yZGVyLmR0LkRUIixmdW5jdGlvbihkLGYsZyxoKXtpZihhPT09Zil7ZD1jLmlkeDtiLnJlbW92ZUNsYXNzKGUuc1NvcnRBc2MrIiAiK2Uuc1NvcnREZXNjKS5hZGRDbGFzcyhoW2RdPT0iYXNjIj9lLnNTb3J0QXNjOmhbZF09PSJkZXNjIj9lLnNTb3J0RGVzYzpjLnNTb3J0aW5nQ2xhc3MpOwpiLmZpbmQoInNwYW4uIitlLnNTb3J0SWNvbikucmVtb3ZlQ2xhc3MoZS5zU29ydEpVSUFzYysiICIrZS5zU29ydEpVSURlc2MrIiAiK2Uuc1NvcnRKVUkrIiAiK2Uuc1NvcnRKVUlBc2NBbGxvd2VkKyIgIitlLnNTb3J0SlVJRGVzY0FsbG93ZWQpLmFkZENsYXNzKGhbZF09PSJhc2MiP2Uuc1NvcnRKVUlBc2M6aFtkXT09ImRlc2MiP2Uuc1NvcnRKVUlEZXNjOmMuc1NvcnRpbmdDbGFzc0pVSSl9fSl9fX0pO20ucmVuZGVyPXtudW1iZXI6ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oZCl7aWYoIm51bWJlciIhPT10eXBlb2YgZCYmInN0cmluZyIhPT10eXBlb2YgZClyZXR1cm4gZDt2YXIgZj0wPmQ/Ii0iOiIiLGQ9TWF0aC5hYnMocGFyc2VGbG9hdChkKSksZz1wYXJzZUludChkLDEwKSxkPWM/YisoZC1nKS50b0ZpeGVkKGMpLnN1YnN0cmluZygyKToiIjtyZXR1cm4gZisoZXx8IiIpK2cudG9TdHJpbmcoKS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLAphKStkfX19fTtoLmV4dGVuZChtLmV4dC5pbnRlcm5hbCx7X2ZuRXh0ZXJuQXBpRnVuYzpOYixfZm5CdWlsZEFqYXg6cmEsX2ZuQWpheFVwZGF0ZTprYixfZm5BamF4UGFyYW1ldGVyczp0YixfZm5BamF4VXBkYXRlRHJhdzp1YixfZm5BamF4RGF0YVNyYzpzYSxfZm5BZGRDb2x1bW46RmEsX2ZuQ29sdW1uT3B0aW9uczprYSxfZm5BZGp1c3RDb2x1bW5TaXppbmc6WCxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleDpsYSxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZTokLF9mblZpc2JsZUNvbHVtbnM6YWEsX2ZuR2V0Q29sdW1uczpaLF9mbkNvbHVtblR5cGVzOkhhLF9mbkFwcGx5Q29sdW1uRGVmczppYixfZm5IdW5nYXJpYW5NYXA6VyxfZm5DYW1lbFRvSHVuZ2FyaWFuOkgsX2ZuTGFuZ3VhZ2VDb21wYXQ6UCxfZm5Ccm93c2VyRGV0ZWN0OmdiLF9mbkFkZERhdGE6SyxfZm5BZGRUcjptYSxfZm5Ob2RlVG9EYXRhSW5kZXg6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5fRFRfUm93SW5kZXghPT1rP2IuX0RUX1Jvd0luZGV4OgpudWxsfSxfZm5Ob2RlVG9Db2x1bW5JbmRleDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGguaW5BcnJheShjLGEuYW9EYXRhW2JdLmFuQ2VsbHMpfSxfZm5HZXRDZWxsRGF0YTp4LF9mblNldENlbGxEYXRhOklhLF9mblNwbGl0T2JqTm90YXRpb246S2EsX2ZuR2V0T2JqZWN0RGF0YUZuOlIsX2ZuU2V0T2JqZWN0RGF0YUZuOlMsX2ZuR2V0RGF0YU1hc3RlcjpMYSxfZm5DbGVhclRhYmxlOm9hLF9mbkRlbGV0ZUluZGV4OnBhLF9mbkludmFsaWRhdGU6Y2EsX2ZuR2V0Um93RWxlbWVudHM6bmEsX2ZuQ3JlYXRlVHI6SmEsX2ZuQnVpbGRIZWFkOmpiLF9mbkRyYXdIZWFkOmVhLF9mbkRyYXc6TSxfZm5SZURyYXc6TixfZm5BZGRPcHRpb25zSHRtbDptYixfZm5EZXRlY3RIZWFkZXI6ZGEsX2ZuR2V0VW5pcXVlVGhzOnFhLF9mbkZlYXR1cmVIdG1sRmlsdGVyOm9iLF9mbkZpbHRlckNvbXBsZXRlOmZhLF9mbkZpbHRlckN1c3RvbTp4YixfZm5GaWx0ZXJDb2x1bW46d2IsX2ZuRmlsdGVyOnZiLF9mbkZpbHRlckNyZWF0ZVNlYXJjaDpRYSwKX2ZuRXNjYXBlUmVnZXg6dmEsX2ZuRmlsdGVyRGF0YTp5YixfZm5GZWF0dXJlSHRtbEluZm86cmIsX2ZuVXBkYXRlSW5mbzpCYixfZm5JbmZvTWFjcm9zOkNiLF9mbkluaXRpYWxpc2U6Z2EsX2ZuSW5pdENvbXBsZXRlOnRhLF9mbkxlbmd0aENoYW5nZTpSYSxfZm5GZWF0dXJlSHRtbExlbmd0aDpuYixfZm5GZWF0dXJlSHRtbFBhZ2luYXRlOnNiLF9mblBhZ2VDaGFuZ2U6VGEsX2ZuRmVhdHVyZUh0bWxQcm9jZXNzaW5nOnBiLF9mblByb2Nlc3NpbmdEaXNwbGF5OkMsX2ZuRmVhdHVyZUh0bWxUYWJsZTpxYixfZm5TY3JvbGxEcmF3OlksX2ZuQXBwbHlUb0NoaWxkcmVuOkcsX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzOkdhLF9mblRocm90dGxlOnVhLF9mbkNvbnZlcnRUb1dpZHRoOkRiLF9mblNjcm9sbGluZ1dpZHRoQWRqdXN0OkZiLF9mbkdldFdpZGVzdE5vZGU6RWIsX2ZuR2V0TWF4TGVuU3RyaW5nOkdiLF9mblN0cmluZ1RvQ3NzOnMsX2ZuU2Nyb2xsQmFyV2lkdGg6SGIsX2ZuU29ydEZsYXR0ZW46VSwKX2ZuU29ydDpsYixfZm5Tb3J0QXJpYTpKYixfZm5Tb3J0TGlzdGVuZXI6VWEsX2ZuU29ydEF0dGFjaExpc3RlbmVyOk9hLF9mblNvcnRpbmdDbGFzc2VzOnhhLF9mblNvcnREYXRhOkliLF9mblNhdmVTdGF0ZTp5YSxfZm5Mb2FkU3RhdGU6S2IsX2ZuU2V0dGluZ3NGcm9tTm9kZTp6YSxfZm5Mb2c6SSxfZm5NYXA6RSxfZm5CaW5kQWN0aW9uOlZhLF9mbkNhbGxiYWNrUmVnOnosX2ZuQ2FsbGJhY2tGaXJlOncsX2ZuTGVuZ3RoT3ZlcmZsb3c6U2EsX2ZuUmVuZGVyZXI6UGEsX2ZuRGF0YVNvdXJjZTpCLF9mblJvd0F0dHJpYnV0ZXM6TWEsX2ZuQ2FsY3VsYXRlRW5kOmZ1bmN0aW9uKCl7fX0pO2guZm4uZGF0YVRhYmxlPW07aC5mbi5kYXRhVGFibGVTZXR0aW5ncz1tLnNldHRpbmdzO2guZm4uZGF0YVRhYmxlRXh0PW0uZXh0O2guZm4uRGF0YVRhYmxlPWZ1bmN0aW9uKGEpe3JldHVybiBoKHRoaXMpLmRhdGFUYWJsZShhKS5hcGkoKX07aC5lYWNoKG0sZnVuY3Rpb24oYSxiKXtoLmZuLkRhdGFUYWJsZVthXT0KYn0pO3JldHVybiBoLmZuLmRhdGFUYWJsZX07ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJkYXRhdGFibGVzIixbImpxdWVyeSJdLFApOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9UChyZXF1aXJlKCJqcXVlcnkiKSk6alF1ZXJ5JiYhalF1ZXJ5LmZuLmRhdGFUYWJsZSYmUChqUXVlcnkpfSkod2luZG93LGRvY3VtZW50KTsK"></script>
<link href="data:text/css;charset=utf-8,%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F1%20%7B%20background%2Dcolor%3A%20%23D3D6FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F2%20%7B%20background%2Dcolor%3A%20%23DADCFF%3B%20%7D%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F3%20%7B%20background%2Dcolor%3A%20%23E0E2FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F1%20%7B%20background%2Dcolor%3A%20%23EAEBFF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F2%20%7B%20background%2Dcolor%3A%20%23F2F3FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F3%20%7B%20background%2Dcolor%3A%20%23F9F9FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F1%20%7B%20background%2Dcolor%3A%20%23D3D6FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F2%20%7B%20background%2Dcolor%3A%20%23DADCFF%3B%20%7D%0Atable%2EdataTable%20tr%2Eodd%20td%2Esorting%5F3%20%7B%20background%2Dcolor%3A%20%23E0E2FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F1%20%7B%20background%2Dcolor%3A%20%23EAEBFF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F2%20%7B%20background%2Dcolor%3A%20%23F2F3FF%3B%20%7D%0Atable%2EdataTable%20tr%2Eeven%20td%2Esorting%5F3%20%7B%20background%2Dcolor%3A%20%23F9F9FF%3B%20%7D%0A%0Atable%2EdataTable%20tbody%20tr%2Eselected%2C%0Atable%2EdataTable%20tr%2Eselected%20td%2Esorting%5F1%2C%0Atable%2EdataTable%20tr%2Eselected%20td%2Esorting%5F2%2C%0Atable%2EdataTable%20tr%2Eselected%20td%2Esorting%5F3%2C%0Adiv%2EDTS%20tbody%20tr%2Eeven%2Eselected%2C%0A%2Etable%2Dstriped%20tbody%3Etr%2Eselected%3Anth%2Dchild%28odd%29%3Etd%2C%0A%2Etable%2Dstriped%20tbody%3Etr%2Eselected%3Anth%2Dchild%28even%29%3Etd%20%7B%0Abackground%2Dcolor%3A%20%23b0bed9%3B%0A%7D%0A" rel="stylesheet" />
<link href="data:text/css;charset=utf-8,table%2EdataTable%7Bwidth%3A100%25%3Bmargin%3A0%20auto%3Bclear%3Aboth%3Bborder%2Dcollapse%3Aseparate%3Bborder%2Dspacing%3A0%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20tfoot%20th%7Bfont%2Dweight%3Abold%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20thead%20td%7Bpadding%3A10px%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20th%3Aactive%2Ctable%2EdataTable%20thead%20td%3Aactive%7Boutline%3Anone%7Dtable%2EdataTable%20tfoot%20th%2Ctable%2EdataTable%20tfoot%20td%7Bpadding%3A10px%2018px%206px%2018px%3Bborder%2Dtop%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bcursor%3Apointer%3B%2Acursor%3Ahand%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Drepeat%3Ano%2Drepeat%3Bbackground%2Dposition%3Acenter%20right%7Dtable%2EdataTable%20thead%20%2Esorting%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL%2BTq%2FQCM1oNiJidwox0355mXnG%2FDrEtIQ6azioNZQxI0ykPhTQIwhCR%2BBmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P%2BGtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS%2FgDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM%2BwTENuQahAvEO9DMwiGdwAxOymGJQLxTyD%2BjgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA%2FBOIv2PBIPFEUgxjB%2BIdQPwfC94HxLykus4GiD%2BhGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL%2BAuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7%2Fy6k01Ikdadx3f%2B37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq%2B3THBpci3jv7oIpAcMcdduzKEu%2F8vPMdDn%2FeiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4%2FHknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO%2Bcxuo6PEdLUIeyb7z604pYf%2By3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20tbody%20tr%7Bbackground%2Dcolor%3A%23fff%7Dtable%2EdataTable%20tbody%20tr%2Eselected%7Bbackground%2Dcolor%3A%23B0BED9%7Dtable%2EdataTable%20tbody%20th%2Ctable%2EdataTable%20tbody%20td%7Bpadding%3A8px%2010px%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dright%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20th%3Afirst%2Dchild%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20td%3Afirst%2Dchild%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%7Bbackground%2Dcolor%3A%23abb9d3%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%7Bbackground%2Dcolor%3A%23a9b7d1%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f1f1f1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23f3f3f3%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a6b3cd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a7b5ce%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a9b6d0%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23fbfbfb%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fdfdfd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23adbbd6%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23afbdd8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23eaeaea%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23ebebeb%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23eee%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a1aec7%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a2afc8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a4b2cb%7Dtable%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%2Enowrap%20th%2Ctable%2EdataTable%2Enowrap%20td%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ecompact%20thead%20th%2Ctable%2EdataTable%2Ecompact%20thead%20td%7Bpadding%3A4px%2017px%204px%204px%7Dtable%2EdataTable%2Ecompact%20tfoot%20th%2Ctable%2EdataTable%2Ecompact%20tfoot%20td%7Bpadding%3A4px%7Dtable%2EdataTable%2Ecompact%20tbody%20th%2Ctable%2EdataTable%2Ecompact%20tbody%20td%7Bpadding%3A4px%7Dtable%2EdataTable%20th%2Edt%2Dleft%2Ctable%2EdataTable%20td%2Edt%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20th%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2EdataTables%5Fempty%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20th%2Edt%2Dright%2Ctable%2EdataTable%20td%2Edt%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20th%2Edt%2Djustify%2Ctable%2EdataTable%20td%2Edt%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20th%2Edt%2Dnowrap%2Ctable%2EdataTable%20td%2Edt%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dleft%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dcenter%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dright%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Djustify%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dnowrap%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ctable%2EdataTable%20th%2Ctable%2EdataTable%20td%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7D%2EdataTables%5Fwrapper%7Bposition%3Arelative%3Bclear%3Aboth%3B%2Azoom%3A1%3Bzoom%3A1%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%7Bfloat%3Aleft%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Aright%3Btext%2Dalign%3Aright%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%20input%7Bmargin%2Dleft%3A0%2E5em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%7Bclear%3Aboth%3Bfloat%3Aleft%3Bpadding%2Dtop%3A0%2E755em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Aright%3Btext%2Dalign%3Aright%3Bpadding%2Dtop%3A0%2E25em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%7Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A1%2E5em%3Bpadding%3A0%2E5em%201em%3Bmargin%2Dleft%3A2px%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%20%21important%3Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20transparent%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%3Ahover%7Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20%23cacaca%3Bbackground%2Dcolor%3A%23fff%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23fff%29%2C%20color%2Dstop%28100%25%2C%20%23dcdcdc%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Ahover%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Aactive%7Bcursor%3Adefault%3Bcolor%3A%23666%20%21important%3Bborder%3A1px%20solid%20transparent%3Bbackground%3Atransparent%3Bbox%2Dshadow%3Anone%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Ahover%7Bcolor%3Awhite%20%21important%3Bborder%3A1px%20solid%20%23111%3Bbackground%2Dcolor%3A%23585858%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23585858%29%2C%20color%2Dstop%28100%25%2C%20%23111%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23585858%200%25%2C%20%23111%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Aactive%7Boutline%3Anone%3Bbackground%2Dcolor%3A%232b2b2b%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%232b2b2b%29%2C%20color%2Dstop%28100%25%2C%20%230c0c0c%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbox%2Dshadow%3Ainset%200%200%203px%20%23111%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Eellipsis%7Bpadding%3A0%201em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A100%25%3Bheight%3A40px%3Bmargin%2Dleft%3A%2D50%25%3Bmargin%2Dtop%3A%2D25px%3Bpadding%2Dtop%3A20px%3Btext%2Dalign%3Acenter%3Bfont%2Dsize%3A1%2E2em%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20color%2Dstop%280%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%2C%20color%2Dstop%2825%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%2875%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%28100%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20right%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bcolor%3A%23333%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%7Bclear%3Aboth%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%7B%2Amargin%2Dtop%3A%2D1px%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20th%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20td%3Ediv%2EdataTables%5Fsizing%7Bheight%3A0%3Boverflow%3Ahidden%3Bmargin%3A0%20%21important%3Bpadding%3A0%20%21important%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20%2EdataTables%5FscrollBody%7Bborder%2Dbottom%3A1px%20solid%20%23111%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollHead%20table%2C%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollBody%20table%7Bborder%2Dbottom%3Anone%7D%2EdataTables%5Fwrapper%3Aafter%7Bvisibility%3Ahidden%3Bdisplay%3Ablock%3Bcontent%3A%22%22%3Bclear%3Aboth%3Bheight%3A0%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20767px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bmargin%2Dtop%3A0%2E5em%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bmargin%2Dtop%3A0%2E5em%7D%7D%0A" rel="stylesheet" />
<style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
div.sourceCode { overflow-x: auto; }
table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
margin: 0; padding: 0; vertical-align: baseline; border: none; }
table.sourceCode { width: 100%; line-height: 100%; }
td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
td.sourceCode { padding-left: 5px; }
code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
code > span.dt { color: #902000; } /* DataType */
code > span.dv { color: #40a070; } /* DecVal */
code > span.bn { color: #40a070; } /* BaseN */
code > span.fl { color: #40a070; } /* Float */
code > span.ch { color: #4070a0; } /* Char */
code > span.st { color: #4070a0; } /* String */
code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
code > span.ot { color: #007020; } /* Other */
code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
code > span.fu { color: #06287e; } /* Function */
code > span.er { color: #ff0000; font-weight: bold; } /* Error */
code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
code > span.cn { color: #880000; } /* Constant */
code > span.sc { color: #4070a0; } /* SpecialChar */
code > span.vs { color: #4070a0; } /* VerbatimString */
code > span.ss { color: #bb6688; } /* SpecialString */
code > span.im { } /* Import */
code > span.va { color: #19177c; } /* Variable */
code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code > span.op { color: #666666; } /* Operator */
code > span.bu { } /* BuiltIn */
code > span.ex { } /* Extension */
code > span.pp { color: #bc7a00; } /* Preprocessor */
code > span.at { color: #7d9029; } /* Attribute */
code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
</head>
<body>
<style type="text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
height: auto;
}
</style>
<div class="container-fluid main-container">
<div id="header">
<h1 class="title">Human disease network of shared genetic etiology</h1>
</div>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(readr)
<span class="kw">library</span>(DT)</code></pre></div>
<div id="edges-in-the-disease-similarity-and-proximity-networks" class="section level2">
<h2>Edges in the disease similarity and proximity networks</h2>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">readr::<span class="kw">read_tsv</span>(<span class="st">'data/network.tsv'</span>) %>%
<span class="st"> </span>DT::<span class="kw">datatable</span>(<span class="dt">rownames =</span> F,
<span class="dt">options =</span> <span class="kw">list</span>(
<span class="dt">pageLength =</span> <span class="dv">25</span>,
<span class="dt">autoWidth =</span> <span class="ot">TRUE</span>,
<span class="dt">columnDefs =</span> <span class="kw">list</span>(<span class="kw">list</span>(<span class="dt">targets=</span><span class="kw">c</span>(<span class="dv">0</span>, <span class="dv">2</span>), <span class="dt">visible=</span><span class="ot">FALSE</span>))
)
)</code></pre></div>
<p><div id="htmlwidget-3402" style="width:100%;height:auto;" class="datatables"></div>
<script type="application/json" data-for="htmlwidget-3402">{"x":{"data":[["DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:10652","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:13241","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:8778","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:12361","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:8567","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:2986","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:13378","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:5408","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:14330","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:7693","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:10871","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:4481","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:986","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:332","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:7147","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:2841","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:1936","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:3310","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:1094","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:14227","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:2513","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:3312","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:4007","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:3459","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:10608","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:3620","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:6713","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:784","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:1040","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:3083","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:9296","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:3393","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:11829","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:1595","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:13922","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1826","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1107","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:1686","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:10763","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:1459","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:0050156","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:10941","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:1024","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:5082","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3910","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:3905","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:12365","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:1909","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:14221","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:6364","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:9538","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:2377","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:5844","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:8986","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:585","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:9970","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:1067","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:8398","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:11476","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4001","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:4905","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:11612","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:12236","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:10286","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:8893","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:9008","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:2468","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:9835","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:4450","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:0050425","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:7148","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:5419","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:14268","DOID:1749","DOID:1749","DOID:1749","DOID:1749","DOID:1749","DOID:1749","DOID:1749","DOID:1749","DOID:5517","DOID:5517","DOID:5517","DOID:5517","DOID:5517","DOID:5517","DOID:5517","DOID:9074","DOID:9074","DOID:9074","DOID:9074","DOID:9074","DOID:9074","DOID:418","DOID:418","DOID:418","DOID:418","DOID:418","DOID:3963","DOID:3963","DOID:3963","DOID:3963","DOID:9744","DOID:9744","DOID:9744","DOID:9352","DOID:9352","DOID:8577"],["Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Alzheimer's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Behcet's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Crohn's disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Graves' disease","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","Hodgkin's lymphoma","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","IgA glomerulonephritis","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Kawasaki disease","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Paget's disease of bone","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","Parkinson's disease","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","abdominal aortic aneurysm","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","age related macular degeneration","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","allergic rhinitis","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","alopecia areata","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","amyotrophic lateral sclerosis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","ankylosing spondylitis","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","asthma","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atherosclerosis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","atopic dermatitis","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","attention deficit hyperactivity disorder","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","azoospermia","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","basal cell carcinoma","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bipolar disorder","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","bladder carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","breast carcinoma","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","celiac disease","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","central nervous system cancer","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","cerebrovascular disease","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic kidney failure","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic lymphocytic leukemia","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","chronic obstructive pulmonary disease","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","cleft lip","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","coronary artery disease","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","degenerative myopia","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","endogenous depression","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","eosinophilic esophagitis","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","epilepsy syndrome","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","esophageal carcinoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","glaucoma","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypertension","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","hypothyroidism","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","idiopathic pulmonary fibrosis","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","intracranial aneurysm","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","leprosy","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","liver cirrhosis","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung adenocarcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","lung carcinoma","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","malaria","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","melanoma","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","metabolic syndrome X","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","migraine","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple myeloma","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","multiple sclerosis","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","myocardial infarction","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","narcolepsy","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","nephrolithiasis","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","obesity","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","open-angle glaucoma","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoarthritis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","osteoporosis","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","ovarian carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","pancreatic carcinoma","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","polycystic ovary syndrome","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","primary biliary cirrhosis","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","prostate carcinoma","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriasis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psoriatic arthritis","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","psychotic disorder","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","refractive error","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","renal cell carcinoma","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","restless legs syndrome","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","rheumatoid arthritis","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","schizophrenia","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","sclerosing cholangitis","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","squamous cell carcinoma","stomach carcinoma","stomach carcinoma","stomach carcinoma","stomach carcinoma","stomach carcinoma","stomach carcinoma","stomach carcinoma","systemic lupus erythematosus","systemic lupus erythematosus","systemic lupus erythematosus","systemic lupus erythematosus","systemic lupus erythematosus","systemic lupus erythematosus","systemic scleroderma","systemic scleroderma","systemic scleroderma","systemic scleroderma","systemic scleroderma","thyroid carcinoma","thyroid carcinoma","thyroid carcinoma","thyroid carcinoma","type 1 diabetes mellitus","type 1 diabetes mellitus","type 1 diabetes mellitus","type 2 diabetes mellitus","type 2 diabetes mellitus","ulcerative colitis"],["DOID:14221","DOID:1936","DOID:1107","DOID:10286","DOID:10871","DOID:1749","DOID:10941","DOID:5517","DOID:3393","DOID:9352","DOID:9970","DOID:3905","DOID:784","DOID:8778","DOID:3459","DOID:6713","DOID:3910","DOID:3620","DOID:5419","DOID:5844","DOID:9744","DOID:10608","DOID:7148","DOID:4001","DOID:1595","DOID:1094","DOID:12236","DOID:14330","DOID:1686","DOID:7693","DOID:0050156","DOID:3312","DOID:9296","DOID:8577","DOID:2513","DOID:1067","DOID:11612","DOID:12306","DOID:2377","DOID:2841","DOID:1040","DOID:11829","DOID:9074","DOID:4481","DOID:1909","DOID:2986","DOID:8893","DOID:1459","DOID:418","DOID:12361","DOID:10763","DOID:986","DOID:4007","DOID:6364","DOID:3083","DOID:12365","DOID:585","DOID:7147","DOID:4905","DOID:8398","DOID:9538","DOID:13241","DOID:1826","DOID:3310","DOID:3963","DOID:8567","DOID:1024","DOID:14268","DOID:13378","DOID:2468","DOID:4450","DOID:9008","DOID:13922","DOID:9835","DOID:0050425","DOID:8986","DOID:5408","DOID:14227","DOID:11476","DOID:5082","DOID:332","DOID:7147","DOID:8893","DOID:10608","DOID:8778","DOID:8577","DOID:9744","DOID:2377","DOID:9008","DOID:8567","DOID:12306","DOID:986","DOID:2841","DOID:7148","DOID:4481","DOID:12236","DOID:3310","DOID:9074","DOID:418","DOID:11612","DOID:12361","DOID:1024","DOID:1459","DOID:11829","DOID:14268","DOID:3905","DOID:1040","DOID:9352","DOID:1749","DOID:2986","DOID:1107","DOID:13378","DOID:784","DOID:6713","DOID:3393","DOID:8986","DOID:10286","DOID:13922","DOID:1909","DOID:3620","DOID:5419","DOID:5844","DOID:5517","DOID:3910","DOID:3459","DOID:9296","DOID:10941","DOID:3963","DOID:4007","DOID:2513","DOID:10871","DOID:14330","DOID:3083","DOID:5082","DOID:14221","DOID:4001","DOID:332","DOID:12365","DOID:4905","DOID:3312","DOID:0050156","DOID:1595","DOID:1094","DOID:1686","DOID:7693","DOID:9538","DOID:9970","DOID:1067","DOID:1936","DOID:585","DOID:6364","DOID:10763","DOID:8398","DOID:1826","DOID:5408","DOID:4450","DOID:2468","DOID:0050425","DOID:14227","DOID:11476","DOID:9835","DOID:8577","DOID:10608","DOID:2377","DOID:1024","DOID:9744","DOID:7148","DOID:7147","DOID:2841","DOID:8893","DOID:4481","DOID:12236","DOID:12306","DOID:9074","DOID:9352","DOID:3310","DOID:418","DOID:986","DOID:14268","DOID:1040","DOID:12361","DOID:2986","DOID:3905","DOID:11612","DOID:8986","DOID:8567","DOID:1459","DOID:14330","DOID:1749","DOID:10286","DOID:9008","DOID:9296","DOID:784","DOID:4001","DOID:5419","DOID:1107","DOID:13378","DOID:3620","DOID:14221","DOID:10941","DOID:13922","DOID:3459","DOID:3393","DOID:6713","DOID:10871","DOID:5844","DOID:3910","DOID:1909","DOID:5517","DOID:9970","DOID:4007","DOID:3963","DOID:2513","DOID:11829","DOID:3083","DOID:3312","DOID:1595","DOID:1094","DOID:5082","DOID:332","DOID:0050156","DOID:1686","DOID:12365","DOID:9538","DOID:1826","DOID:7693","DOID:1936","DOID:1067","DOID:4905","DOID:585","DOID:8398","DOID:10763","DOID:6364","DOID:5408","DOID:4450","DOID:2468","DOID:14227","DOID:11476","DOID:0050425","DOID:9835","DOID:12365","DOID:9744","DOID:12306","DOID:4905","DOID:986","DOID:5844","DOID:10608","DOID:6713","DOID:3393","DOID:7148","DOID:8893","DOID:2377","DOID:2841","DOID:12236","DOID:4481","DOID:11612","DOID:1459","DOID:8577","DOID:9074","DOID:7147","DOID:1909","DOID:3905","DOID:2513","DOID:418","DOID:784","DOID:7693","DOID:10941","DOID:3620","DOID:1686","DOID:6364","DOID:1749","DOID:2986","DOID:1067","DOID:8398","DOID:3910","DOID:1040","DOID:3310","DOID:1107","DOID:8567","DOID:9352","DOID:11829","DOID:9008","DOID:3083","DOID:10286","DOID:3963","DOID:5419","DOID:14221","DOID:3459","DOID:1595","DOID:1094","DOID:13378","DOID:5517","DOID:3312","DOID:13922","DOID:10871","DOID:4007","DOID:1936","DOID:1024","DOID:10763","DOID:0050156","DOID:14268","DOID:9296","DOID:9538","DOID:4001","DOID:14330","DOID:8986","DOID:585","DOID:5082","DOID:9970","DOID:332","DOID:5408","DOID:9835","DOID:2468","DOID:1826","DOID:4450","DOID:0050425","DOID:14227","DOID:11476","DOID:9008","DOID:8893","DOID:3310","DOID:2377","DOID:7148","DOID:7147","DOID:10608","DOID:2841","DOID:9744","DOID:8577","DOID:4481","DOID:3459","DOID:12306","DOID:418","DOID:9074","DOID:986","DOID:12236","DOID:8986","DOID:11612","DOID:11829","DOID:1040","DOID:13378","DOID:9352","DOID:3905","DOID:2986","DOID:1459","DOID:13922","DOID:1749","DOID:10286","DOID:6713","DOID:1909","DOID:14268","DOID:5082","DOID:3393","DOID:1024","DOID:332","DOID:784","DOID:3083","DOID:1107","DOID:5844","DOID:5419","DOID:4001","DOID:3620","DOID:10871","DOID:3910","DOID:3963","DOID:2513","DOID:9296","DOID:5517","DOID:14221","DOID:4007","DOID:10941","DOID:9970","DOID:3312","DOID:14330","DOID:0050156","DOID:12365","DOID:1686","DOID:1595","DOID:7693","DOID:4450","DOID:1094","DOID:4905","DOID:1067","DOID:9538","DOID:0050425","DOID:1826","DOID:5408","DOID:6364","DOID:1936","DOID:8398","DOID:585","DOID:10763","DOID:2468","DOID:9835","DOID:14227","DOID:11476","DOID:3905","DOID:2841","DOID:4481","DOID:9744","DOID:1040","DOID:3910","DOID:1749","DOID:9074","DOID:2377","DOID:5517","DOID:8577","DOID:7148","DOID:12236","DOID:10608","DOID:13922","DOID:3620","DOID:418","DOID:0050156","DOID:3310","DOID:12306","DOID:1107","DOID:8893","DOID:986","DOID:4007","DOID:5419","DOID:1909","DOID:2513","DOID:6713","DOID:3083","DOID:3393","DOID:7147","DOID:11612","DOID:11829","DOID:14268","DOID:13378","DOID:10286","DOID:9352","DOID:9538","DOID:5844","DOID:1459","DOID:784","DOID:3459","DOID:9008","DOID:10941","DOID:1024","DOID:1686","DOID:3312","DOID:1595","DOID:7693","DOID:1094","DOID:8986","DOID:1067","DOID:10871","DOID:14221","DOID:12365","DOID:3963","DOID:5408","DOID:9296","DOID:4905","DOID:4001","DOID:5082","DOID:332","DOID:14330","DOID:6364","DOID:8398","DOID:1936","DOID:9970","DOID:10763","DOID:585","DOID:1826","DOID:4450","DOID:2468","DOID:14227","DOID:11476","DOID:9835","DOID:0050425","DOID:3083","DOID:418","DOID:9074","DOID:7148","DOID:8577","DOID:2377","DOID:5408","DOID:12236","DOID:3905","DOID:10608","DOID:3910","DOID:8893","DOID:2841","DOID:9744","DOID:1040","DOID:4481","DOID:6713","DOID:12306","DOID:3393","DOID:7147","DOID:9352","DOID:1749","DOID:986","DOID:3620","DOID:5844","DOID:14268","DOID:5419","DOID:3310","DOID:9008","DOID:1909","DOID:5517","DOID:4007","DOID:0050156","DOID:1107","DOID:1459","DOID:2513","DOID:1024","DOID:10871","DOID:11612","DOID:10941","DOID:10286","DOID:784","DOID:3459","DOID:13922","DOID:5082","DOID:3312","DOID:332","DOID:1595","DOID:9538","DOID:14221","DOID:1094","DOID:1686","DOID:7693","DOID:12365","DOID:11829","DOID:4001","DOID:1067","DOID:4905","DOID:6364","DOID:3963","DOID:8986","DOID:9296","DOID:9970","DOID:8398","DOID:1936","DOID:14330","DOID:10763","DOID:1826","DOID:585","DOID:2468","DOID:4450","DOID:14227","DOID:11476","DOID:9835","DOID:0050425","DOID:3083","DOID:3910","DOID:3905","DOID:6713","DOID:3393","DOID:7148","DOID:418","DOID:3620","DOID:1749","DOID:9074","DOID:0050156","DOID:5844","DOID:5419","DOID:5517","DOID:2513","DOID:1909","DOID:4007","DOID:8577","DOID:2377","DOID:1107","DOID:9744","DOID:2841","DOID:10941","DOID:12236","DOID:7693","DOID:1686","DOID:10608","DOID:12306","DOID:4481","DOID:1067","DOID:1040","DOID:12365","DOID:1595","DOID:1094","DOID:3312","DOID:6364","DOID:4905","DOID:8893","DOID:1459","DOID:9538","DOID:10286","DOID:9352","DOID:14221","DOID:3459","DOID:11829","DOID:784","DOID:986","DOID:8398","DOID:1936","DOID:7147","DOID:3310","DOID:10763","DOID:10871","DOID:14268","DOID:9008","DOID:3963","DOID:11612","DOID:13922","DOID:4001","DOID:1024","DOID:2468","DOID:9970","DOID:585","DOID:14330","DOID:4450","DOID:9835","DOID:1826","DOID:9296","DOID:5082","DOID:14227","DOID:11476","DOID:332","DOID:8986","DOID:0050425","DOID:4001","DOID:784","DOID:10286","DOID:1826","DOID:9970","DOID:3459","DOID:9352","DOID:585","DOID:9744","DOID:10763","DOID:10871","DOID:7148","DOID:14221","DOID:10608","DOID:1909","DOID:3393","DOID:12306","DOID:8577","DOID:1459","DOID:2377","DOID:6713","DOID:2841","DOID:3620","DOID:8893","DOID:12236","DOID:3905","DOID:4481","DOID:9296","DOID:11612","DOID:7147","DOID:9074","DOID:1040","DOID:5419","DOID:1024","DOID:986","DOID:418","DOID:11829","DOID:10941","DOID:5844","DOID:0050156","DOID:3963","DOID:3910","DOID:1749","DOID:2513","DOID:3310","DOID:3312","DOID:1107","DOID:14268","DOID:1595","DOID:1936","DOID:1094","DOID:1686","DOID:4007","DOID:7693","DOID:1067","DOID:5517","DOID:9008","DOID:8986","DOID:3083","DOID:4450","DOID:9538","DOID:12365","DOID:13922","DOID:4905","DOID:6364","DOID:0050425","DOID:8398","DOID:5082","DOID:2468","DOID:332","DOID:9835","DOID:14227","DOID:11476","DOID:6364","DOID:1686","DOID:1067","DOID:10941","DOID:3620","DOID:5844","DOID:6713","DOID:2513","DOID:3393","DOID:3910","DOID:3459","DOID:3905","DOID:1936","DOID:1595","DOID:1094","DOID:0050156","DOID:12365","DOID:9538","DOID:3312","DOID:4007","DOID:1909","DOID:9835","DOID:8398","DOID:4905","DOID:10286","DOID:12306","DOID:5419","DOID:1749","DOID:14221","DOID:1040","DOID:9744","DOID:3083","DOID:1459","DOID:8577","DOID:12236","DOID:7148","DOID:10608","DOID:784","DOID:5517","DOID:1107","DOID:9074","DOID:2841","DOID:9352","DOID:2377","DOID:10763","DOID:4481","DOID:2468","DOID:986","DOID:3963","DOID:418","DOID:10871","DOID:8893","DOID:4001","DOID:11829","DOID:585","DOID:7147","DOID:9970","DOID:14268","DOID:11612","DOID:4450","DOID:3310","DOID:0050425","DOID:9008","DOID:9296","DOID:1024","DOID:1826","DOID:13922","DOID:14227","DOID:11476","DOID:8986","DOID:5082","DOID:332","DOID:14221","DOID:784","DOID:12236","DOID:9352","DOID:1936","DOID:7148","DOID:9970","DOID:3393","DOID:9744","DOID:9074","DOID:418","DOID:2841","DOID:2377","DOID:585","DOID:8577","DOID:10608","DOID:4481","DOID:3459","DOID:12306","DOID:6713","DOID:10763","DOID:5419","DOID:5844","DOID:10941","DOID:1909","DOID:10286","DOID:1459","DOID:4001","DOID:8893","DOID:11612","DOID:9296","DOID:1107","DOID:986","DOID:1749","DOID:3312","DOID:3905","DOID:1595","DOID:1094","DOID:1040","DOID:7147","DOID:3620","DOID:3310","DOID:2513","DOID:3910","DOID:1686","DOID:3963","DOID:3083","DOID:5517","DOID:12365","DOID:1067","DOID:13922","DOID:1024","DOID:9008","DOID:4905","DOID:14268","DOID:6364","DOID:8398","DOID:1826","DOID:4007","DOID:0050156","DOID:11829","DOID:8986","DOID:9538","DOID:4450","DOID:2468","DOID:5082","DOID:332","DOID:0050425","DOID:14227","DOID:11476","DOID:9835","DOID:2841","DOID:13922","DOID:3310","DOID:12236","DOID:9744","DOID:10608","DOID:8577","DOID:2377","DOID:3905","DOID:9074","DOID:7148","DOID:8893","DOID:986","DOID:12306","DOID:1040","DOID:418","DOID:11612","DOID:7147","DOID:8986","DOID:1749","DOID:3910","DOID:9008","DOID:5419","DOID:14268","DOID:9352","DOID:5517","DOID:1459","DOID:1107","DOID:3620","DOID:5844","DOID:1024","DOID:6713","DOID:3393","DOID:1909","DOID:784","DOID:4007","DOID:10286","DOID:2513","DOID:0050156","DOID:3083","DOID:11829","DOID:9296","DOID:3459","DOID:10941","DOID:9538","DOID:14221","DOID:3312","DOID:5082","DOID:1595","DOID:1094","DOID:3963","DOID:332","DOID:12365","DOID:4001","DOID:1686","DOID:4905","DOID:1067","DOID:9970","DOID:8398","DOID:6364","DOID:1936","DOID:585","DOID:10763","DOID:1826","DOID:2468","DOID:4450","DOID:14227","DOID:11476","DOID:9835","DOID:0050425","DOID:9744","DOID:10608","DOID:12306","DOID:11612","DOID:8893","DOID:2841","DOID:2377","DOID:7148","DOID:7147","DOID:12236","DOID:8577","DOID:9074","DOID:3310","DOID:1459","DOID:418","DOID:9008","DOID:6713","DOID:3905","DOID:1909","DOID:9296","DOID:9352","DOID:12365","DOID:3393","DOID:5844","DOID:784","DOID:1040","DOID:1749","DOID:4905","DOID:13922","DOID:1107","DOID:11829","DOID:2513","DOID:10286","DOID:3910","DOID:3963","DOID:5517","DOID:5419","DOID:3620","DOID:1024","DOID:3459","DOID:14268","DOID:3083","DOID:8986","DOID:10941","DOID:4007","DOID:14221","DOID:5082","DOID:1686","DOID:332","DOID:4001","DOID:0050156","DOID:1067","DOID:3312","DOID:1595","DOID:1094","DOID:6364","DOID:9970","DOID:9538","DOID:8398","DOID:10763","DOID:585","DOID:1936","DOID:1826","DOID:4450","DOID:2468","DOID:9835","DOID:0050425","DOID:14227","DOID:11476","DOID:2377","DOID:10608","DOID:12236","DOID:9744","DOID:8577","DOID:7148","DOID:2841","DOID:8893","DOID:7147","DOID:9074","DOID:12306","DOID:5082","DOID:418","DOID:3310","DOID:1040","DOID:9352","DOID:3905","DOID:9008","DOID:3459","DOID:11612","DOID:1459","DOID:1749","DOID:14268","DOID:13922","DOID:1024","DOID:1107","DOID:6713","DOID:5419","DOID:3393","DOID:784","DOID:5844","DOID:3083","DOID:8986","DOID:1909","DOID:3910","DOID:3620","DOID:10286","DOID:5517","DOID:4007","DOID:11829","DOID:2513","DOID:14221","DOID:3963","DOID:10941","DOID:4001","DOID:9296","DOID:9538","DOID:3312","DOID:0050156","DOID:12365","DOID:1595","DOID:9970","DOID:1094","DOID:4905","DOID:1686","DOID:1067","DOID:8398","DOID:1936","DOID:6364","DOID:585","DOID:1826","DOID:10763","DOID:4450","DOID:0050425","DOID:2468","DOID:14227","DOID:11476","DOID:9835","DOID:8893","DOID:10608","DOID:8577","DOID:2377","DOID:9744","DOID:9008","DOID:12306","DOID:2841","DOID:7148","DOID:12236","DOID:9074","DOID:3310","DOID:418","DOID:11612","DOID:1024","DOID:14268","DOID:1459","DOID:9352","DOID:1040","DOID:1749","DOID:3905","DOID:11829","DOID:1107","DOID:784","DOID:6713","DOID:3393","DOID:8986","DOID:13922","DOID:10286","DOID:5419","DOID:3620","DOID:1909","DOID:5082","DOID:5844","DOID:5517","DOID:3459","DOID:3910","DOID:10941","DOID:9296","DOID:4007","DOID:3963","DOID:2513","DOID:4001","DOID:14221","DOID:3083","DOID:12365","DOID:4905","DOID:3312","DOID:1595","DOID:1094","DOID:0050156","DOID:1686","DOID:9970","DOID:9538","DOID:1067","DOID:1936","DOID:585","DOID:6364","DOID:10763","DOID:8398","DOID:1826","DOID:4450","DOID:2468","DOID:0050425","DOID:14227","DOID:11476","DOID:9835","DOID:13922","DOID:12236","DOID:3310","DOID:9744","DOID:10608","DOID:8577","DOID:2377","DOID:8893","DOID:7148","DOID:3905","DOID:12306","DOID:9074","DOID:11612","DOID:1040","DOID:418","DOID:8986","DOID:1749","DOID:9008","DOID:3910","DOID:9352","DOID:5419","DOID:14268","DOID:1459","DOID:5517","DOID:1107","DOID:5844","DOID:6713","DOID:3620","DOID:1024","DOID:1909","DOID:3393","DOID:784","DOID:10286","DOID:4007","DOID:9296","DOID:2513","DOID:11829","DOID:0050156","DOID:3083","DOID:3459","DOID:10941","DOID:14221","DOID:9538","DOID:3312","DOID:3963","DOID:5082","DOID:1595","DOID:1094","DOID:12365","DOID:4001","DOID:4905","DOID:1686","DOID:1067","DOID:9970","DOID:8398","DOID:6364","DOID:1936","DOID:585","DOID:10763","DOID:1826","DOID:2468","DOID:4450","DOID:14227","DOID:11476","DOID:9835","DOID:0050425","DOID:10941","DOID:14221","DOID:3393","DOID:6713","DOID:5844","DOID:1595","DOID:1094","DOID:1686","DOID:1067","DOID:3620","DOID:3312","DOID:2513","DOID:9352","DOID:10286","DOID:5419","DOID:9970","DOID:784","DOID:1107","DOID:6364","DOID:8398","DOID:3905","DOID:3910","DOID:1749","DOID:3459","DOID:8577","DOID:12365","DOID:4905","DOID:12236","DOID:9744","DOID:7148","DOID:12306","DOID:10763","DOID:2468","DOID:10608","DOID:1909","DOID:1459","DOID:0050156","DOID:5517","DOID:9074","DOID:4007","DOID:3083","DOID:9538","DOID:2377","DOID:4001","DOID:585","DOID:9835","DOID:418","DOID:1040","DOID:8893","DOID:11612","DOID:9296","DOID:3963","DOID:14268","DOID:11829","DOID:1024","DOID:3310","DOID:1826","DOID:4450","DOID:9008","DOID:13922","DOID:14227","DOID:11476","DOID:8986","DOID:0050425","DOID:5082","DOID:8986","DOID:8893","DOID:10608","DOID:2377","DOID:8577","DOID:9008","DOID:9744","DOID:12236","DOID:13922","DOID:7148","DOID:12306","DOID:9074","DOID:418","DOID:3905","DOID:11612","DOID:1040","DOID:1024","DOID:9352","DOID:1749","DOID:14268","DOID:1459","DOID:3459","DOID:11829","DOID:1107","DOID:5419","DOID:6713","DOID:784","DOID:3910","DOID:3393","DOID:3620","DOID:10286","DOID:1909","DOID:5844","DOID:5517","DOID:5082","DOID:9296","DOID:4007","DOID:2513","DOID:3083","DOID:10941","DOID:4001","DOID:14221","DOID:3963","DOID:0050156","DOID:3312","DOID:12365","DOID:1595","DOID:1094","DOID:9538","DOID:4905","DOID:1686","DOID:9970","DOID:1067","DOID:8398","DOID:6364","DOID:1826","DOID:585","DOID:10763","DOID:4450","DOID:2468","DOID:0050425","DOID:14227","DOID:11476","DOID:9835","DOID:1595","DOID:3312","DOID:5419","DOID:8398","DOID:2468","DOID:10941","DOID:3393","DOID:585","DOID:5844","DOID:1686","DOID:6713","DOID:9352","DOID:1067","DOID:3620","DOID:7148","DOID:2513","DOID:14221","DOID:3905","DOID:14227","DOID:11476","DOID:4450","DOID:8577","DOID:3910","DOID:10286","DOID:1826","DOID:1749","DOID:784","DOID:6364","DOID:12306","DOID:9744","DOID:14268","DOID:12365","DOID:11829","DOID:1107","DOID:9074","DOID:3083","DOID:4905","DOID:12236","DOID:10608","DOID:2377","DOID:1040","DOID:3459","DOID:418","DOID:5517","DOID:1909","DOID:0050156","DOID:1459","DOID:8893","DOID:4007","DOID:9970","DOID:10763","DOID:4001","DOID:9538","DOID:11612","DOID:9835","DOID:9296","DOID:3963","DOID:1024","DOID:13922","DOID:9008","DOID:8986","DOID:5082","DOID:0050425","DOID:5419","DOID:3312","DOID:1595","DOID:8398","DOID:9352","DOID:2468","DOID:11476","DOID:10941","DOID:4450","DOID:1826","DOID:3393","DOID:7148","DOID:1686","DOID:3905","DOID:14268","DOID:11829","DOID:14221","DOID:8577","DOID:1749","DOID:585","DOID:1107","DOID:12306","DOID:3910","DOID:5844","DOID:9744","DOID:10286","DOID:3083","DOID:9074","DOID:6713","DOID:2377","DOID:1040","DOID:3620","DOID:10608","DOID:5517","DOID:1067","DOID:12236","DOID:418","DOID:2513","DOID:8893","DOID:4001","DOID:3459","DOID:9970","DOID:784","DOID:11612","DOID:0050156","DOID:1909","DOID:9296","DOID:4007","DOID:1459","DOID:6364","DOID:13922","DOID:12365","DOID:1024","DOID:4905","DOID:9538","DOID:9008","DOID:10763","DOID:3963","DOID:8986","DOID:9835","DOID:5082","DOID:0050425","DOID:1909","DOID:3910","DOID:3620","DOID:1686","DOID:3905","DOID:4007","DOID:1067","DOID:10941","DOID:5844","DOID:6713","DOID:12306","DOID:3393","DOID:0050156","DOID:1749","DOID:9538","DOID:6364","DOID:3459","DOID:5517","DOID:9744","DOID:784","DOID:3083","DOID:1107","DOID:1595","DOID:7148","DOID:10608","DOID:12365","DOID:1040","DOID:3312","DOID:10286","DOID:4905","DOID:8577","DOID:8398","DOID:9835","DOID:12236","DOID:5419","DOID:1459","DOID:2377","DOID:9074","DOID:8893","DOID:11829","DOID:14221","DOID:418","DOID:11612","DOID:9352","DOID:10763","DOID:3963","DOID:585","DOID:14268","DOID:4001","DOID:2468","DOID:9008","DOID:13922","DOID:9970","DOID:4450","DOID:1024","DOID:9296","DOID:0050425","DOID:1826","DOID:8986","DOID:5082","DOID:11476","DOID:1595","DOID:5419","DOID:2468","DOID:8398","DOID:585","DOID:10941","DOID:1686","DOID:3393","DOID:5844","DOID:9352","DOID:6713","DOID:1067","DOID:7148","DOID:3620","DOID:784","DOID:14221","DOID:3905","DOID:11476","DOID:4450","DOID:8577","DOID:1826","DOID:3910","DOID:1749","DOID:10286","DOID:9744","DOID:12306","DOID:14268","DOID:11829","DOID:1107","DOID:9074","DOID:6364","DOID:3083","DOID:2377","DOID:10608","DOID:12365","DOID:12236","DOID:1040","DOID:3459","DOID:418","DOID:4905","DOID:1909","DOID:5517","DOID:9970","DOID:8893","DOID:0050156","DOID:1459","DOID:4001","DOID:4007","DOID:10763","DOID:11612","DOID:9296","DOID:9538","DOID:9835","DOID:9008","DOID:3963","DOID:1024","DOID:13922","DOID:8986","DOID:5082","DOID:0050425","DOID:9538","DOID:3620","DOID:3910","DOID:3905","DOID:1909","DOID:1040","DOID:8577","DOID:0050156","DOID:1749","DOID:5517","DOID:1686","DOID:6713","DOID:1067","DOID:12306","DOID:10941","DOID:5844","DOID:3393","DOID:1107","DOID:9744","DOID:3083","DOID:7148","DOID:14268","DOID:10286","DOID:9074","DOID:2377","DOID:10608","DOID:418","DOID:784","DOID:12236","DOID:3459","DOID:8893","DOID:5419","DOID:6364","DOID:11829","DOID:1595","DOID:9352","DOID:1459","DOID:12365","DOID:4905","DOID:11612","DOID:14221","DOID:8398","DOID:1024","DOID:13922","DOID:9008","DOID:9835","DOID:4001","DOID:10763","DOID:3963","DOID:585","DOID:9296","DOID:9970","DOID:8986","DOID:2468","DOID:4450","DOID:5082","DOID:1826","DOID:0050425","DOID:11476","DOID:10286","DOID:4001","DOID:4450","DOID:9352","DOID:0050425","DOID:3963","DOID:9970","DOID:3620","DOID:1459","DOID:0050156","DOID:14221","DOID:1686","DOID:3905","DOID:3393","DOID:6713","DOID:1067","DOID:5844","DOID:9744","DOID:2377","DOID:7148","DOID:1826","DOID:3910","DOID:10941","DOID:8893","DOID:10608","DOID:12306","DOID:784","DOID:1749","DOID:8577","DOID:9296","DOID:11612","DOID:5419","DOID:1040","DOID:9008","DOID:12236","DOID:9074","DOID:6364","DOID:9538","DOID:1909","DOID:418","DOID:1107","DOID:5517","DOID:11829","DOID:1595","DOID:12365","DOID:3083","DOID:4905","DOID:8398","DOID:9835","DOID:1024","DOID:14268","DOID:10763","DOID:585","DOID:13922","DOID:8986","DOID:5082","DOID:2468","DOID:11476","DOID:2377","DOID:9744","DOID:8893","DOID:12306","DOID:8577","DOID:7148","DOID:12236","DOID:9074","DOID:1459","DOID:1749","DOID:1107","DOID:418","DOID:6713","DOID:784","DOID:11612","DOID:3905","DOID:3393","DOID:9008","DOID:1040","DOID:5517","DOID:9352","DOID:3963","DOID:5844","DOID:1909","DOID:1024","DOID:13922","DOID:14268","DOID:3910","DOID:8986","DOID:11829","DOID:3620","DOID:5082","DOID:12365","DOID:5419","DOID:10286","DOID:4905","DOID:10941","DOID:3083","DOID:14221","DOID:9296","DOID:4001","DOID:1686","DOID:0050156","DOID:1067","DOID:1595","DOID:10763","DOID:6364","DOID:585","DOID:9538","DOID:9970","DOID:8398","DOID:1826","DOID:4450","DOID:2468","DOID:9835","DOID:0050425","DOID:11476","DOID:9538","DOID:0050156","DOID:3910","DOID:3905","DOID:1686","DOID:1067","DOID:10941","DOID:5844","DOID:6713","DOID:1040","DOID:3393","DOID:10286","DOID:1749","DOID:1909","DOID:6364","DOID:8577","DOID:5517","DOID:3083","DOID:1107","DOID:9744","DOID:1595","DOID:12306","DOID:12365","DOID:7148","DOID:5419","DOID:9835","DOID:4905","DOID:8398","DOID:9074","DOID:2377","DOID:12236","DOID:14268","DOID:418","DOID:9352","DOID:784","DOID:14221","DOID:1459","DOID:11829","DOID:8893","DOID:4001","DOID:11612","DOID:3963","DOID:10763","DOID:9296","DOID:1024","DOID:9970","DOID:2468","DOID:13922","DOID:4450","DOID:9008","DOID:585","DOID:0050425","DOID:1826","DOID:8986","DOID:5082","DOID:11476","DOID:3393","DOID:5844","DOID:12365","DOID:4905","DOID:6364","DOID:1686","DOID:10941","DOID:1067","DOID:3910","DOID:3905","DOID:1459","DOID:3083","DOID:12306","DOID:8398","DOID:9744","DOID:784","DOID:14221","DOID:1749","DOID:1595","DOID:7148","DOID:0050156","DOID:12236","DOID:3963","DOID:1909","DOID:10763","DOID:10286","DOID:1107","DOID:9074","DOID:5419","DOID:5517","DOID:2377","DOID:9538","DOID:8577","DOID:9352","DOID:8893","DOID:418","DOID:1040","DOID:9835","DOID:11612","DOID:585","DOID:11829","DOID:2468","DOID:9970","DOID:4001","DOID:9008","DOID:14268","DOID:13922","DOID:9296","DOID:1024","DOID:4450","DOID:1826","DOID:8986","DOID:0050425","DOID:5082","DOID:11476","DOID:585","DOID:10763","DOID:1909","DOID:9744","DOID:14221","DOID:1459","DOID:12306","DOID:3393","DOID:10286","DOID:7148","DOID:3963","DOID:4001","DOID:12236","DOID:2377","DOID:5844","DOID:3905","DOID:9352","DOID:8893","DOID:3910","DOID:8577","DOID:9074","DOID:1595","DOID:1749","DOID:10941","DOID:418","DOID:9970","DOID:5419","DOID:11612","DOID:1040","DOID:1107","DOID:1686","DOID:12365","DOID:1067","DOID:4905","DOID:5517","DOID:3083","DOID:0050156","DOID:6364","DOID:11829","DOID:1826","DOID:1024","DOID:9296","DOID:9008","DOID:8398","DOID:14268","DOID:9538","DOID:13922","DOID:2468","DOID:8986","DOID:5082","DOID:4450","DOID:9835","DOID:0050425","DOID:11476","DOID:14268","DOID:9538","DOID:9074","DOID:418","DOID:7148","DOID:9744","DOID:2377","DOID:3905","DOID:8577","DOID:10286","DOID:12236","DOID:3910","DOID:8893","DOID:12306","DOID:5419","DOID:1749","DOID:0050156","DOID:13922","DOID:1909","DOID:3393","DOID:9352","DOID:5517","DOID:5844","DOID:10941","DOID:11612","DOID:1107","DOID:1686","DOID:3083","DOID:1459","DOID:1067","DOID:9008","DOID:1024","DOID:1595","DOID:11829","DOID:4001","DOID:14221","DOID:9296","DOID:5082","DOID:8986","DOID:12365","DOID:3963","DOID:6364","DOID:4905","DOID:8398","DOID:9970","DOID:1826","DOID:585","DOID:10763","DOID:4450","DOID:2468","DOID:9835","DOID:11476","DOID:0050425","DOID:3910","DOID:3905","DOID:3393","DOID:7148","DOID:418","DOID:1749","DOID:9074","DOID:0050156","DOID:5844","DOID:5419","DOID:5517","DOID:8577","DOID:2377","DOID:1909","DOID:1107","DOID:9744","DOID:12236","DOID:10941","DOID:1686","DOID:12306","DOID:1067","DOID:12365","DOID:1595","DOID:6364","DOID:8893","DOID:4905","DOID:1459","DOID:9538","DOID:10286","DOID:9352","DOID:14221","DOID:11829","DOID:8398","DOID:14268","DOID:10763","DOID:9008","DOID:3963","DOID:11612","DOID:13922","DOID:4001","DOID:1024","DOID:2468","DOID:9970","DOID:585","DOID:4450","DOID:9835","DOID:1826","DOID:9296","DOID:5082","DOID:11476","DOID:8986","DOID:0050425","DOID:11612","DOID:9352","DOID:10286","DOID:9744","DOID:8893","DOID:12306","DOID:9970","DOID:7148","DOID:14221","DOID:8577","DOID:2377","DOID:4001","DOID:9074","DOID:5419","DOID:12236","DOID:418","DOID:3393","DOID:1749","DOID:3905","DOID:1107","DOID:1024","DOID:11829","DOID:9008","DOID:1459","DOID:10941","DOID:0050156","DOID:1595","DOID:5844","DOID:3910","DOID:1909","DOID:5517","DOID:14268","DOID:13922","DOID:1826","DOID:8986","DOID:1686","DOID:3963","DOID:1067","DOID:12365","DOID:9538","DOID:4905","DOID:8398","DOID:585","DOID:4450","DOID:10763","DOID:6364","DOID:5082","DOID:2468","DOID:0050425","DOID:11476","DOID:9835","DOID:5844","DOID:10941","DOID:14221","DOID:12365","DOID:6364","DOID:4905","DOID:1686","DOID:1067","DOID:10763","DOID:1595","DOID:3910","DOID:3905","DOID:1459","DOID:1749","DOID:8398","DOID:10286","DOID:12306","DOID:1107","DOID:9744","DOID:5419","DOID:9074","DOID:7148","DOID:9352","DOID:12236","DOID:5517","DOID:0050156","DOID:1909","DOID:3963","DOID:418","DOID:2377","DOID:8577","DOID:8893","DOID:9538","DOID:9970","DOID:2468","DOID:9835","DOID:585","DOID:11612","DOID:11829","DOID:4001","DOID:14268","DOID:9008","DOID:13922","DOID:4450","DOID:1024","DOID:1826","DOID:8986","DOID:11476","DOID:0050425","DOID:5082","DOID:3905","DOID:8893","DOID:12306","DOID:10286","DOID:5419","DOID:9744","DOID:3910","DOID:1749","DOID:5517","DOID:9008","DOID:1909","DOID:7148","DOID:2377","DOID:0050156","DOID:11612","DOID:9074","DOID:1107","DOID:8577","DOID:1595","DOID:12236","DOID:418","DOID:9352","DOID:1459","DOID:5844","DOID:10941","DOID:4001","DOID:1686","DOID:9538","DOID:1067","DOID:14221","DOID:14268","DOID:8398","DOID:13922","DOID:12365","DOID:3963","DOID:4905","DOID:1826","DOID:1024","DOID:8986","DOID:2468","DOID:4450","DOID:9970","DOID:585","DOID:6364","DOID:11476","DOID:10763","DOID:5082","DOID:9835","DOID:0050425","DOID:5419","DOID:2468","DOID:8398","DOID:10941","DOID:585","DOID:5844","DOID:1686","DOID:9352","DOID:1067","DOID:7148","DOID:14221","DOID:3905","DOID:11476","DOID:4450","DOID:8577","DOID:3910","DOID:10286","DOID:1826","DOID:1749","DOID:6364","DOID:12306","DOID:9744","DOID:14268","DOID:12365","DOID:1107","DOID:9074","DOID:4905","DOID:12236","DOID:2377","DOID:418","DOID:5517","DOID:1909","DOID:0050156","DOID:1459","DOID:8893","DOID:9970","DOID:10763","DOID:4001","DOID:9538","DOID:11612","DOID:9835","DOID:3963","DOID:1024","DOID:13922","DOID:9008","DOID:8986","DOID:5082","DOID:0050425","DOID:12236","DOID:9744","DOID:8577","DOID:2377","DOID:3905","DOID:7148","DOID:9074","DOID:8893","DOID:12306","DOID:11612","DOID:418","DOID:8986","DOID:1749","DOID:3910","DOID:9008","DOID:5419","DOID:9352","DOID:14268","DOID:5517","DOID:1459","DOID:1107","DOID:5844","DOID:1024","DOID:1909","DOID:10286","DOID:0050156","DOID:10941","DOID:9538","DOID:14221","DOID:5082","DOID:3963","DOID:12365","DOID:4001","DOID:1686","DOID:4905","DOID:1067","DOID:9970","DOID:8398","DOID:6364","DOID:585","DOID:10763","DOID:1826","DOID:2468","DOID:4450","DOID:11476","DOID:9835","DOID:0050425","DOID:4001","DOID:9970","DOID:5419","DOID:9352","DOID:10286","DOID:7148","DOID:14221","DOID:9744","DOID:8577","DOID:4450","DOID:2377","DOID:8398","DOID:3905","DOID:9074","DOID:10941","DOID:12306","DOID:418","DOID:12236","DOID:1686","DOID:2468","DOID:1749","DOID:11612","DOID:8893","DOID:5844","DOID:11476","DOID:1459","DOID:1107","DOID:14268","DOID:3910","DOID:585","DOID:3963","DOID:0050156","DOID:1067","DOID:0050425","DOID:1024","DOID:1909","DOID:5517","DOID:9008","DOID:10763","DOID:9538","DOID:12365","DOID:6364","DOID:4905","DOID:8986","DOID:5082","DOID:9835","DOID:1749","DOID:5517","DOID:3905","DOID:3910","DOID:9744","DOID:9352","DOID:0050156","DOID:7148","DOID:5419","DOID:1909","DOID:2377","DOID:12306","DOID:5844","DOID:8577","DOID:14221","DOID:9074","DOID:8893","DOID:12236","DOID:10286","DOID:10941","DOID:418","DOID:1686","DOID:1459","DOID:9538","DOID:1067","DOID:11612","DOID:12365","DOID:9970","DOID:4905","DOID:6364","DOID:14268","DOID:9008","DOID:1024","DOID:4001","DOID:8398","DOID:3963","DOID:10763","DOID:8986","DOID:585","DOID:2468","DOID:4450","DOID:5082","DOID:11476","DOID:9835","DOID:0050425","DOID:1067","DOID:10941","DOID:5844","DOID:6364","DOID:9835","DOID:3910","DOID:5419","DOID:3905","DOID:0050156","DOID:9538","DOID:8398","DOID:1909","DOID:12365","DOID:4905","DOID:10286","DOID:12306","DOID:1749","DOID:14221","DOID:9744","DOID:8577","DOID:2468","DOID:1459","DOID:7148","DOID:12236","DOID:5517","DOID:9352","DOID:9074","DOID:585","DOID:2377","DOID:10763","DOID:418","DOID:3963","DOID:8893","DOID:4001","DOID:4450","DOID:14268","DOID:9970","DOID:11612","DOID:0050425","DOID:9008","DOID:1024","DOID:11476","DOID:8986","DOID:5082","DOID:5844","DOID:585","DOID:14221","DOID:1909","DOID:9744","DOID:1459","DOID:12306","DOID:10941","DOID:10286","DOID:12365","DOID:6364","DOID:3905","DOID:4905","DOID:7148","DOID:3910","DOID:1067","DOID:1749","DOID:3963","DOID:9352","DOID:9074","DOID:12236","DOID:5419","DOID:8398","DOID:2377","DOID:4001","DOID:8577","DOID:8893","DOID:418","DOID:5517","DOID:0050156","DOID:9970","DOID:11612","DOID:9538","DOID:2468","DOID:1024","DOID:9008","DOID:14268","DOID:9835","DOID:8986","DOID:4450","DOID:5082","DOID:0050425","DOID:11476","DOID:3963","DOID:9744","DOID:12306","DOID:7148","DOID:5844","DOID:2377","DOID:8893","DOID:12236","DOID:8577","DOID:9074","DOID:1909","DOID:3905","DOID:418","DOID:10286","DOID:12365","DOID:1749","DOID:9352","DOID:3910","DOID:14221","DOID:11612","DOID:10941","DOID:4905","DOID:585","DOID:1067","DOID:6364","DOID:4001","DOID:9008","DOID:5419","DOID:5517","DOID:0050156","DOID:1024","DOID:9970","DOID:8398","DOID:4450","DOID:14268","DOID:0050425","DOID:9538","DOID:8986","DOID:5082","DOID:9835","DOID:2468","DOID:11476","DOID:3910","DOID:3905","DOID:1749","DOID:10286","DOID:5517","DOID:9538","DOID:1909","DOID:1067","DOID:5844","DOID:10941","DOID:9744","DOID:8577","DOID:12306","DOID:5419","DOID:7148","DOID:9074","DOID:6364","DOID:2377","DOID:9352","DOID:12236","DOID:418","DOID:12365","DOID:4001","DOID:8893","DOID:4905","DOID:14221","DOID:8398","DOID:11612","DOID:14268","DOID:3963","DOID:9835","DOID:9970","DOID:4450","DOID:0050425","DOID:9008","DOID:1024","DOID:585","DOID:2468","DOID:8986","DOID:5082","DOID:11476","DOID:1067","DOID:5844","DOID:5419","DOID:10286","DOID:14221","DOID:6364","DOID:8398","DOID:8577","DOID:3910","DOID:3905","DOID:2468","DOID:12365","DOID:9538","DOID:4905","DOID:1909","DOID:9835","DOID:12306","DOID:1749","DOID:9744","DOID:7148","DOID:9352","DOID:12236","DOID:9074","DOID:585","DOID:2377","DOID:5517","DOID:418","DOID:8893","DOID:14268","DOID:9970","DOID:4001","DOID:11612","DOID:3963","DOID:1024","DOID:4450","DOID:9008","DOID:11476","DOID:8986","DOID:0050425","DOID:5082","DOID:8577","DOID:2377","DOID:9744","DOID:7148","DOID:12236","DOID:8893","DOID:9074","DOID:12306","DOID:9352","DOID:14268","DOID:418","DOID:3905","DOID:9008","DOID:11612","DOID:8986","DOID:10286","DOID:1749","DOID:5419","DOID:4001","DOID:14221","DOID:3910","DOID:5844","DOID:1909","DOID:5517","DOID:9970","DOID:3963","DOID:9538","DOID:5082","DOID:12365","DOID:1067","DOID:4905","DOID:585","DOID:8398","DOID:6364","DOID:4450","DOID:2468","DOID:11476","DOID:0050425","DOID:9835","DOID:2377","DOID:12236","DOID:9744","DOID:8577","DOID:7148","DOID:8893","DOID:9074","DOID:12306","DOID:418","DOID:9352","DOID:3905","DOID:9008","DOID:11612","DOID:1749","DOID:14268","DOID:5419","DOID:5844","DOID:8986","DOID:1909","DOID:3910","DOID:10286","DOID:5517","DOID:14221","DOID:3963","DOID:4001","DOID:9538","DOID:12365","DOID:9970","DOID:4905","DOID:1067","DOID:8398","DOID:6364","DOID:585","DOID:4450","DOID:0050425","DOID:2468","DOID:11476","DOID:9835","DOID:3905","DOID:1749","DOID:1909","DOID:5517","DOID:9538","DOID:5844","DOID:1067","DOID:9744","DOID:10286","DOID:12306","DOID:5419","DOID:7148","DOID:8577","DOID:9074","DOID:2377","DOID:6364","DOID:12236","DOID:12365","DOID:418","DOID:4905","DOID:9352","DOID:8893","DOID:14221","DOID:8398","DOID:14268","DOID:11612","DOID:9835","DOID:3963","DOID:4001","DOID:9008","DOID:9970","DOID:585","DOID:2468","DOID:4450","DOID:8986","DOID:0050425","DOID:11476","DOID:1749","DOID:5517","DOID:1909","DOID:9744","DOID:9538","DOID:5844","DOID:9074","DOID:7148","DOID:10286","DOID:12306","DOID:8577","DOID:2377","DOID:5419","DOID:1067","DOID:12236","DOID:418","DOID:8893","DOID:9352","DOID:6364","DOID:12365","DOID:11612","DOID:14268","DOID:4905","DOID:14221","DOID:8398","DOID:9008","DOID:4001","DOID:3963","DOID:9970","DOID:8986","DOID:9835","DOID:585","DOID:4450","DOID:2468","DOID:0050425","DOID:11476","DOID:4905","DOID:5844","DOID:9744","DOID:12306","DOID:6364","DOID:8398","DOID:1067","DOID:7148","DOID:12236","DOID:14221","DOID:2377","DOID:1749","DOID:9074","DOID:8893","DOID:1909","DOID:8577","DOID:5419","DOID:10286","DOID:418","DOID:11612","DOID:3963","DOID:9352","DOID:5517","DOID:9538","DOID:9835","DOID:9008","DOID:2468","DOID:585","DOID:4001","DOID:9970","DOID:14268","DOID:8986","DOID:4450","DOID:0050425","DOID:11476","DOID:12306","DOID:7148","DOID:1749","DOID:9744","DOID:5517","DOID:5844","DOID:9538","DOID:1067","DOID:8893","DOID:2377","DOID:9074","DOID:12236","DOID:8577","DOID:585","DOID:418","DOID:11612","DOID:10286","DOID:5419","DOID:14221","DOID:6364","DOID:9352","DOID:3963","DOID:4905","DOID:9008","DOID:8398","DOID:14268","DOID:4001","DOID:9835","DOID:9970","DOID:8986","DOID:2468","DOID:4450","DOID:0050425","DOID:11476","DOID:9352","DOID:9970","DOID:12236","DOID:5419","DOID:7148","DOID:5844","DOID:10286","DOID:4001","DOID:9744","DOID:8577","DOID:2377","DOID:1749","DOID:9074","DOID:12306","DOID:585","DOID:11612","DOID:418","DOID:8893","DOID:1067","DOID:5517","DOID:6364","DOID:4905","DOID:8398","DOID:3963","DOID:14268","DOID:4450","DOID:9008","DOID:2468","DOID:9538","DOID:8986","DOID:0050425","DOID:11476","DOID:9835","DOID:5844","DOID:1067","DOID:4905","DOID:8398","DOID:12306","DOID:12236","DOID:9744","DOID:1749","DOID:9538","DOID:7148","DOID:10286","DOID:5419","DOID:9835","DOID:9074","DOID:8577","DOID:5517","DOID:2377","DOID:9352","DOID:3963","DOID:418","DOID:8893","DOID:2468","DOID:585","DOID:11612","DOID:4001","DOID:9970","DOID:14268","DOID:9008","DOID:4450","DOID:0050425","DOID:8986","DOID:11476","DOID:1067","DOID:5844","DOID:10286","DOID:8577","DOID:14268","DOID:1749","DOID:9744","DOID:9074","DOID:7148","DOID:418","DOID:5517","DOID:2377","DOID:12306","DOID:12236","DOID:5419","DOID:8893","DOID:9352","DOID:4905","DOID:8398","DOID:9835","DOID:11612","DOID:4001","DOID:9008","DOID:3963","DOID:9970","DOID:2468","DOID:585","DOID:4450","DOID:8986","DOID:0050425","DOID:11476","DOID:12236","DOID:9744","DOID:8577","DOID:7148","DOID:8893","DOID:9074","DOID:12306","DOID:418","DOID:9008","DOID:9352","DOID:11612","DOID:1749","DOID:14268","DOID:5419","DOID:5844","DOID:8986","DOID:10286","DOID:5517","DOID:3963","DOID:4001","DOID:9970","DOID:4905","DOID:1067","DOID:8398","DOID:585","DOID:4450","DOID:2468","DOID:0050425","DOID:11476","DOID:9835","DOID:8398","DOID:4905","DOID:1067","DOID:12236","DOID:7148","DOID:12306","DOID:9744","DOID:5419","DOID:1749","DOID:9074","DOID:10286","DOID:8577","DOID:418","DOID:9835","DOID:9352","DOID:5517","DOID:8893","DOID:3963","DOID:2468","DOID:11612","DOID:585","DOID:9970","DOID:4001","DOID:14268","DOID:9008","DOID:4450","DOID:0050425","DOID:8986","DOID:11476","DOID:8893","DOID:8577","DOID:9744","DOID:12236","DOID:7148","DOID:9008","DOID:12306","DOID:9074","DOID:418","DOID:11612","DOID:9352","DOID:14268","DOID:1749","DOID:5419","DOID:10286","DOID:4001","DOID:5517","DOID:3963","DOID:9970","DOID:4905","DOID:1067","DOID:8398","DOID:585","DOID:4450","DOID:2468","DOID:0050425","DOID:11476","DOID:9835","DOID:5419","DOID:2468","DOID:8398","DOID:9744","DOID:12306","DOID:7148","DOID:10286","DOID:9352","DOID:3963","DOID:4001","DOID:12236","DOID:8577","DOID:1067","DOID:8893","DOID:9074","DOID:1749","DOID:418","DOID:9970","DOID:11612","DOID:4905","DOID:14268","DOID:5517","DOID:4450","DOID:11476","DOID:9008","DOID:9835","DOID:0050425","DOID:4001","DOID:9352","DOID:10286","DOID:7148","DOID:11612","DOID:5419","DOID:9744","DOID:9074","DOID:418","DOID:8577","DOID:1749","DOID:12236","DOID:12306","DOID:8893","DOID:4450","DOID:3963","DOID:0050425","DOID:5517","DOID:1067","DOID:9008","DOID:14268","DOID:8398","DOID:4905","DOID:2468","DOID:11476","DOID:9835","DOID:9835","DOID:8398","DOID:4905","DOID:5419","DOID:10286","DOID:12306","DOID:1749","DOID:9744","DOID:8577","DOID:12236","DOID:7148","DOID:5517","DOID:9352","DOID:9074","DOID:2468","DOID:3963","DOID:418","DOID:8893","DOID:4001","DOID:4450","DOID:14268","DOID:11612","DOID:0050425","DOID:9008","DOID:11476","DOID:5419","DOID:2468","DOID:4905","DOID:12236","DOID:7148","DOID:9352","DOID:12306","DOID:9744","DOID:1749","DOID:10286","DOID:8577","DOID:9074","DOID:418","DOID:4450","DOID:11476","DOID:14268","DOID:5517","DOID:8893","DOID:9835","DOID:3963","DOID:11612","DOID:4001","DOID:9008","DOID:0050425","DOID:5419","DOID:9352","DOID:2468","DOID:4450","DOID:7148","DOID:14268","DOID:8577","DOID:1749","DOID:12306","DOID:9744","DOID:10286","DOID:9074","DOID:5517","DOID:12236","DOID:418","DOID:8893","DOID:4001","DOID:11612","DOID:4905","DOID:9008","DOID:3963","DOID:9835","DOID:0050425","DOID:10286","DOID:9352","DOID:7148","DOID:5419","DOID:9744","DOID:8577","DOID:9074","DOID:11612","DOID:418","DOID:12236","DOID:12306","DOID:8893","DOID:4450","DOID:3963","DOID:1749","DOID:0050425","DOID:9008","DOID:14268","DOID:5517","DOID:4905","DOID:2468","DOID:9835","DOID:9744","DOID:12306","DOID:7148","DOID:12236","DOID:1749","DOID:9074","DOID:8893","DOID:8577","DOID:10286","DOID:5419","DOID:418","DOID:11612","DOID:3963","DOID:9352","DOID:5517","DOID:9835","DOID:9008","DOID:2468","DOID:14268","DOID:4450","DOID:0050425","DOID:8893","DOID:9352","DOID:12306","DOID:9744","DOID:10286","DOID:7148","DOID:12236","DOID:8577","DOID:9008","DOID:9074","DOID:418","DOID:1749","DOID:5419","DOID:5517","DOID:14268","DOID:3963","DOID:4450","DOID:2468","DOID:0050425","DOID:9835","DOID:418","DOID:9074","DOID:8577","DOID:7148","DOID:9744","DOID:12306","DOID:8893","DOID:9352","DOID:14268","DOID:9008","DOID:1749","DOID:5419","DOID:10286","DOID:5517","DOID:3963","DOID:2468","DOID:4450","DOID:9835","DOID:0050425","DOID:9352","DOID:9744","DOID:8577","DOID:5419","DOID:7148","DOID:12306","DOID:1749","DOID:8893","DOID:9074","DOID:5517","DOID:418","DOID:14268","DOID:3963","DOID:4450","DOID:0050425","DOID:9008","DOID:2468","DOID:9835","DOID:9008","DOID:9744","DOID:12306","DOID:418","DOID:7148","DOID:8577","DOID:9074","DOID:9352","DOID:1749","DOID:14268","DOID:5419","DOID:5517","DOID:3963","DOID:4450","DOID:2468","DOID:0050425","DOID:9835","DOID:8577","DOID:7148","DOID:9744","DOID:12306","DOID:418","DOID:9074","DOID:9352","DOID:14268","DOID:1749","DOID:5419","DOID:5517","DOID:3963","DOID:4450","DOID:0050425","DOID:2468","DOID:9835","DOID:5419","DOID:9352","DOID:7148","DOID:4450","DOID:8577","DOID:1749","DOID:12306","DOID:9744","DOID:14268","DOID:9074","DOID:418","DOID:5517","DOID:9835","DOID:3963","DOID:0050425","DOID:5419","DOID:12306","DOID:1749","DOID:9744","DOID:8577","DOID:7148","DOID:5517","DOID:9352","DOID:9074","DOID:3963","DOID:418","DOID:4450","DOID:14268","DOID:0050425","DOID:5419","DOID:9352","DOID:3963","DOID:0050425","DOID:7148","DOID:9744","DOID:1749","DOID:8577","DOID:12306","DOID:14268","DOID:9074","DOID:418","DOID:5517","DOID:9352","DOID:3963","DOID:9744","DOID:7148","DOID:12306","DOID:1749","DOID:8577","DOID:5419","DOID:9074","DOID:418","DOID:5517","DOID:14268","DOID:9074","DOID:418","DOID:9744","DOID:12306","DOID:8577","DOID:9352","DOID:1749","DOID:5419","DOID:14268","DOID:3963","DOID:5517","DOID:9352","DOID:14268","DOID:8577","DOID:1749","DOID:12306","DOID:9744","DOID:9074","DOID:5517","DOID:418","DOID:3963","DOID:8577","DOID:9074","DOID:418","DOID:9744","DOID:12306","DOID:9352","DOID:1749","DOID:5517","DOID:3963","DOID:5517","DOID:9744","DOID:9352","DOID:12306","DOID:8577","DOID:9074","DOID:418","DOID:3963","DOID:9744","DOID:9352","DOID:12306","DOID:8577","DOID:9074","DOID:418","DOID:3963","DOID:418","DOID:8577","DOID:9744","DOID:12306","DOID:9352","DOID:3963","DOID:8577","DOID:9744","DOID:12306","DOID:9352","DOID:3963","DOID:9744","DOID:12306","DOID:8577","DOID:9352","DOID:12306","DOID:8577","DOID:9352","DOID:8577","DOID:12306","DOID:12306"],["metabolic syndrome X","atherosclerosis","esophageal carcinoma","prostate carcinoma","age related macular degeneration","squamous cell carcinoma","intracranial aneurysm","stomach carcinoma","coronary artery disease","type 2 diabetes mellitus","obesity","lung carcinoma","chronic kidney failure","Crohn's disease","breast carcinoma","cerebrovascular disease","lung adenocarcinoma","central nervous system cancer","schizophrenia","myocardial infarction","type 1 diabetes mellitus","celiac disease","rheumatoid arthritis","ovarian carcinoma","endogenous depression","attention deficit hyperactivity disorder","primary biliary cirrhosis","Parkinson's disease","glaucoma","abdominal aortic aneurysm","idiopathic pulmonary fibrosis","bipolar disorder","cleft lip","ulcerative colitis","basal cell carcinoma","open-angle glaucoma","polycystic ovary syndrome","vitiligo","multiple sclerosis","asthma","chronic lymphocytic leukemia","degenerative myopia","systemic lupus erythematosus","allergic rhinitis","melanoma","IgA glomerulonephritis","psoriasis","hypothyroidism","systemic scleroderma","Graves' disease","hypertension","alopecia areata","bladder carcinoma","migraine","chronic obstructive pulmonary disease","malaria","nephrolithiasis","ankylosing spondylitis","pancreatic carcinoma","osteoarthritis","multiple myeloma","Behcet's disease","epilepsy syndrome","atopic dermatitis","thyroid carcinoma","Hodgkin's lymphoma","leprosy","sclerosing cholangitis","Kawasaki disease","psychotic disorder","renal cell carcinoma","psoriatic arthritis","eosinophilic esophagitis","refractive error","restless legs syndrome","narcolepsy","Paget's disease of bone","azoospermia","osteoporosis","liver cirrhosis","amyotrophic lateral sclerosis","ankylosing spondylitis","psoriasis","celiac disease","Crohn's disease","ulcerative colitis","type 1 diabetes mellitus","multiple sclerosis","psoriatic arthritis","Hodgkin's lymphoma","vitiligo","alopecia areata","asthma","rheumatoid arthritis","allergic rhinitis","primary biliary cirrhosis","atopic dermatitis","systemic lupus erythematosus","systemic scleroderma","polycystic ovary syndrome","Graves' disease","leprosy","hypothyroidism","degenerative myopia","sclerosing cholangitis","lung carcinoma","chronic lymphocytic leukemia","type 2 diabetes mellitus","squamous cell carcinoma","IgA glomerulonephritis","esophageal carcinoma","Kawasaki disease","chronic kidney failure","cerebrovascular disease","coronary artery disease","narcolepsy","prostate carcinoma","eosinophilic esophagitis","melanoma","central nervous system cancer","schizophrenia","myocardial infarction","stomach carcinoma","lung adenocarcinoma","breast carcinoma","cleft lip","intracranial aneurysm","thyroid carcinoma","bladder carcinoma","basal cell carcinoma","age related macular degeneration","Parkinson's disease","chronic obstructive pulmonary disease","liver cirrhosis","metabolic syndrome X","ovarian carcinoma","amyotrophic lateral sclerosis","malaria","pancreatic carcinoma","bipolar disorder","idiopathic pulmonary fibrosis","endogenous depression","attention deficit hyperactivity disorder","glaucoma","abdominal aortic aneurysm","multiple myeloma","obesity","open-angle glaucoma","atherosclerosis","nephrolithiasis","migraine","hypertension","osteoarthritis","epilepsy syndrome","Paget's disease of bone","renal cell carcinoma","psychotic disorder","restless legs syndrome","azoospermia","osteoporosis","refractive error","ulcerative colitis","celiac disease","multiple sclerosis","leprosy","type 1 diabetes mellitus","rheumatoid arthritis","ankylosing spondylitis","asthma","psoriasis","allergic rhinitis","primary biliary cirrhosis","vitiligo","systemic lupus erythematosus","type 2 diabetes mellitus","atopic dermatitis","systemic scleroderma","alopecia areata","sclerosing cholangitis","chronic lymphocytic leukemia","Graves' disease","IgA glomerulonephritis","lung carcinoma","polycystic ovary syndrome","narcolepsy","Hodgkin's lymphoma","hypothyroidism","Parkinson's disease","squamous cell carcinoma","prostate carcinoma","psoriatic arthritis","cleft lip","chronic kidney failure","ovarian carcinoma","schizophrenia","esophageal carcinoma","Kawasaki disease","central nervous system cancer","metabolic syndrome X","intracranial aneurysm","eosinophilic esophagitis","breast carcinoma","coronary artery disease","cerebrovascular disease","age related macular degeneration","myocardial infarction","lung adenocarcinoma","melanoma","stomach carcinoma","obesity","bladder carcinoma","thyroid carcinoma","basal cell carcinoma","degenerative myopia","chronic obstructive pulmonary disease","bipolar disorder","endogenous depression","attention deficit hyperactivity disorder","liver cirrhosis","amyotrophic lateral sclerosis","idiopathic pulmonary fibrosis","glaucoma","malaria","multiple myeloma","epilepsy syndrome","abdominal aortic aneurysm","atherosclerosis","open-angle glaucoma","pancreatic carcinoma","nephrolithiasis","osteoarthritis","hypertension","migraine","Paget's disease of bone","renal cell carcinoma","psychotic disorder","azoospermia","osteoporosis","restless legs syndrome","refractive error","malaria","type 1 diabetes mellitus","vitiligo","pancreatic carcinoma","alopecia areata","myocardial infarction","celiac disease","cerebrovascular disease","coronary artery disease","rheumatoid arthritis","psoriasis","multiple sclerosis","asthma","primary biliary cirrhosis","allergic rhinitis","polycystic ovary syndrome","hypothyroidism","ulcerative colitis","systemic lupus erythematosus","ankylosing spondylitis","melanoma","lung carcinoma","basal cell carcinoma","systemic scleroderma","chronic kidney failure","abdominal aortic aneurysm","intracranial aneurysm","central nervous system cancer","glaucoma","migraine","squamous cell carcinoma","IgA glomerulonephritis","open-angle glaucoma","osteoarthritis","lung adenocarcinoma","chronic lymphocytic leukemia","atopic dermatitis","esophageal carcinoma","Hodgkin's lymphoma","type 2 diabetes mellitus","degenerative myopia","psoriatic arthritis","chronic obstructive pulmonary disease","prostate carcinoma","thyroid carcinoma","schizophrenia","metabolic syndrome X","breast carcinoma","endogenous depression","attention deficit hyperactivity disorder","Kawasaki disease","stomach carcinoma","bipolar disorder","eosinophilic esophagitis","age related macular degeneration","bladder carcinoma","atherosclerosis","leprosy","hypertension","idiopathic pulmonary fibrosis","sclerosing cholangitis","cleft lip","multiple myeloma","ovarian carcinoma","Parkinson's disease","narcolepsy","nephrolithiasis","liver cirrhosis","obesity","amyotrophic lateral sclerosis","Paget's disease of bone","refractive error","psychotic disorder","epilepsy syndrome","renal cell carcinoma","restless legs syndrome","azoospermia","osteoporosis","psoriatic arthritis","psoriasis","atopic dermatitis","multiple sclerosis","rheumatoid arthritis","ankylosing spondylitis","celiac disease","asthma","type 1 diabetes mellitus","ulcerative colitis","allergic rhinitis","breast carcinoma","vitiligo","systemic scleroderma","systemic lupus erythematosus","alopecia areata","primary biliary cirrhosis","narcolepsy","polycystic ovary syndrome","degenerative myopia","chronic lymphocytic leukemia","Kawasaki disease","type 2 diabetes mellitus","lung carcinoma","IgA glomerulonephritis","hypothyroidism","eosinophilic esophagitis","squamous cell carcinoma","prostate carcinoma","cerebrovascular disease","melanoma","sclerosing cholangitis","liver cirrhosis","coronary artery disease","leprosy","amyotrophic lateral sclerosis","chronic kidney failure","chronic obstructive pulmonary disease","esophageal carcinoma","myocardial infarction","schizophrenia","ovarian carcinoma","central nervous system cancer","age related macular degeneration","lung adenocarcinoma","thyroid carcinoma","basal cell carcinoma","cleft lip","stomach carcinoma","metabolic syndrome X","bladder carcinoma","intracranial aneurysm","obesity","bipolar disorder","Parkinson's disease","idiopathic pulmonary fibrosis","malaria","glaucoma","endogenous depression","abdominal aortic aneurysm","renal cell carcinoma","attention deficit hyperactivity disorder","pancreatic carcinoma","open-angle glaucoma","multiple myeloma","restless legs syndrome","epilepsy syndrome","Paget's disease of bone","migraine","atherosclerosis","osteoarthritis","nephrolithiasis","hypertension","psychotic disorder","refractive error","azoospermia","osteoporosis","lung carcinoma","asthma","allergic rhinitis","type 1 diabetes mellitus","chronic lymphocytic leukemia","lung adenocarcinoma","squamous cell carcinoma","systemic lupus erythematosus","multiple sclerosis","stomach carcinoma","ulcerative colitis","rheumatoid arthritis","primary biliary cirrhosis","celiac disease","eosinophilic esophagitis","central nervous system cancer","systemic scleroderma","idiopathic pulmonary fibrosis","atopic dermatitis","vitiligo","esophageal carcinoma","psoriasis","alopecia areata","bladder carcinoma","schizophrenia","melanoma","basal cell carcinoma","cerebrovascular disease","chronic obstructive pulmonary disease","coronary artery disease","ankylosing spondylitis","polycystic ovary syndrome","degenerative myopia","sclerosing cholangitis","Kawasaki disease","prostate carcinoma","type 2 diabetes mellitus","multiple myeloma","myocardial infarction","hypothyroidism","chronic kidney failure","breast carcinoma","psoriatic arthritis","intracranial aneurysm","leprosy","glaucoma","bipolar disorder","endogenous depression","abdominal aortic aneurysm","attention deficit hyperactivity disorder","narcolepsy","open-angle glaucoma","age related macular degeneration","metabolic syndrome X","malaria","thyroid carcinoma","Paget's disease of bone","cleft lip","pancreatic carcinoma","ovarian carcinoma","liver cirrhosis","amyotrophic lateral sclerosis","Parkinson's disease","migraine","osteoarthritis","atherosclerosis","obesity","hypertension","nephrolithiasis","epilepsy syndrome","renal cell carcinoma","psychotic disorder","azoospermia","osteoporosis","refractive error","restless legs syndrome","chronic obstructive pulmonary disease","systemic scleroderma","systemic lupus erythematosus","rheumatoid arthritis","ulcerative colitis","multiple sclerosis","Paget's disease of bone","primary biliary cirrhosis","lung carcinoma","celiac disease","lung adenocarcinoma","psoriasis","asthma","type 1 diabetes mellitus","chronic lymphocytic leukemia","allergic rhinitis","cerebrovascular disease","vitiligo","coronary artery disease","ankylosing spondylitis","type 2 diabetes mellitus","squamous cell carcinoma","alopecia areata","central nervous system cancer","myocardial infarction","sclerosing cholangitis","schizophrenia","atopic dermatitis","psoriatic arthritis","melanoma","stomach carcinoma","bladder carcinoma","idiopathic pulmonary fibrosis","esophageal carcinoma","hypothyroidism","basal cell carcinoma","leprosy","age related macular degeneration","polycystic ovary syndrome","intracranial aneurysm","prostate carcinoma","chronic kidney failure","breast carcinoma","eosinophilic esophagitis","liver cirrhosis","bipolar disorder","amyotrophic lateral sclerosis","endogenous depression","multiple myeloma","metabolic syndrome X","attention deficit hyperactivity disorder","glaucoma","abdominal aortic aneurysm","malaria","degenerative myopia","ovarian carcinoma","open-angle glaucoma","pancreatic carcinoma","migraine","thyroid carcinoma","narcolepsy","cleft lip","obesity","osteoarthritis","atherosclerosis","Parkinson's disease","hypertension","epilepsy syndrome","nephrolithiasis","psychotic disorder","renal cell carcinoma","azoospermia","osteoporosis","refractive error","restless legs syndrome","chronic obstructive pulmonary disease","lung adenocarcinoma","lung carcinoma","cerebrovascular disease","coronary artery disease","rheumatoid arthritis","systemic scleroderma","central nervous system cancer","squamous cell carcinoma","systemic lupus erythematosus","idiopathic pulmonary fibrosis","myocardial infarction","schizophrenia","stomach carcinoma","basal cell carcinoma","melanoma","bladder carcinoma","ulcerative colitis","multiple sclerosis","esophageal carcinoma","type 1 diabetes mellitus","asthma","intracranial aneurysm","primary biliary cirrhosis","abdominal aortic aneurysm","glaucoma","celiac disease","vitiligo","allergic rhinitis","open-angle glaucoma","chronic lymphocytic leukemia","malaria","endogenous depression","attention deficit hyperactivity disorder","bipolar disorder","migraine","pancreatic carcinoma","psoriasis","hypothyroidism","multiple myeloma","prostate carcinoma","type 2 diabetes mellitus","metabolic syndrome X","breast carcinoma","degenerative myopia","chronic kidney failure","alopecia areata","osteoarthritis","atherosclerosis","ankylosing spondylitis","atopic dermatitis","hypertension","age related macular degeneration","sclerosing cholangitis","psoriatic arthritis","thyroid carcinoma","polycystic ovary syndrome","eosinophilic esophagitis","ovarian carcinoma","leprosy","psychotic disorder","obesity","nephrolithiasis","Parkinson's disease","renal cell carcinoma","refractive error","epilepsy syndrome","cleft lip","liver cirrhosis","azoospermia","osteoporosis","amyotrophic lateral sclerosis","narcolepsy","restless legs syndrome","ovarian carcinoma","chronic kidney failure","prostate carcinoma","epilepsy syndrome","obesity","breast carcinoma","type 2 diabetes mellitus","nephrolithiasis","type 1 diabetes mellitus","hypertension","age related macular degeneration","rheumatoid arthritis","metabolic syndrome X","celiac disease","melanoma","coronary artery disease","vitiligo","ulcerative colitis","hypothyroidism","multiple sclerosis","cerebrovascular disease","asthma","central nervous system cancer","psoriasis","primary biliary cirrhosis","lung carcinoma","allergic rhinitis","cleft lip","polycystic ovary syndrome","ankylosing spondylitis","systemic lupus erythematosus","chronic lymphocytic leukemia","schizophrenia","leprosy","alopecia areata","systemic scleroderma","degenerative myopia","intracranial aneurysm","myocardial infarction","idiopathic pulmonary fibrosis","thyroid carcinoma","lung adenocarcinoma","squamous cell carcinoma","basal cell carcinoma","atopic dermatitis","bipolar disorder","esophageal carcinoma","sclerosing cholangitis","endogenous depression","atherosclerosis","attention deficit hyperactivity disorder","glaucoma","bladder carcinoma","abdominal aortic aneurysm","open-angle glaucoma","stomach carcinoma","psoriatic arthritis","narcolepsy","chronic obstructive pulmonary disease","renal cell carcinoma","multiple myeloma","malaria","eosinophilic esophagitis","pancreatic carcinoma","migraine","restless legs syndrome","osteoarthritis","liver cirrhosis","psychotic disorder","amyotrophic lateral sclerosis","refractive error","azoospermia","osteoporosis","migraine","glaucoma","open-angle glaucoma","intracranial aneurysm","central nervous system cancer","myocardial infarction","cerebrovascular disease","basal cell carcinoma","coronary artery disease","lung adenocarcinoma","breast carcinoma","lung carcinoma","atherosclerosis","endogenous depression","attention deficit hyperactivity disorder","idiopathic pulmonary fibrosis","malaria","multiple myeloma","bipolar disorder","bladder carcinoma","melanoma","refractive error","osteoarthritis","pancreatic carcinoma","prostate carcinoma","vitiligo","schizophrenia","squamous cell carcinoma","metabolic syndrome X","chronic lymphocytic leukemia","type 1 diabetes mellitus","chronic obstructive pulmonary disease","hypothyroidism","ulcerative colitis","primary biliary cirrhosis","rheumatoid arthritis","celiac disease","chronic kidney failure","stomach carcinoma","esophageal carcinoma","systemic lupus erythematosus","asthma","type 2 diabetes mellitus","multiple sclerosis","hypertension","allergic rhinitis","psychotic disorder","alopecia areata","thyroid carcinoma","systemic scleroderma","age related macular degeneration","psoriasis","ovarian carcinoma","degenerative myopia","nephrolithiasis","ankylosing spondylitis","obesity","sclerosing cholangitis","polycystic ovary syndrome","renal cell carcinoma","atopic dermatitis","restless legs syndrome","psoriatic arthritis","cleft lip","leprosy","epilepsy syndrome","eosinophilic esophagitis","azoospermia","osteoporosis","narcolepsy","liver cirrhosis","amyotrophic lateral sclerosis","metabolic syndrome X","chronic kidney failure","primary biliary cirrhosis","type 2 diabetes mellitus","atherosclerosis","rheumatoid arthritis","obesity","coronary artery disease","type 1 diabetes mellitus","systemic lupus erythematosus","systemic scleroderma","asthma","multiple sclerosis","nephrolithiasis","ulcerative colitis","celiac disease","allergic rhinitis","breast carcinoma","vitiligo","cerebrovascular disease","hypertension","schizophrenia","myocardial infarction","intracranial aneurysm","melanoma","prostate carcinoma","hypothyroidism","ovarian carcinoma","psoriasis","polycystic ovary syndrome","cleft lip","esophageal carcinoma","alopecia areata","squamous cell carcinoma","bipolar disorder","lung carcinoma","endogenous depression","attention deficit hyperactivity disorder","chronic lymphocytic leukemia","ankylosing spondylitis","central nervous system cancer","atopic dermatitis","basal cell carcinoma","lung adenocarcinoma","glaucoma","thyroid carcinoma","chronic obstructive pulmonary disease","stomach carcinoma","malaria","open-angle glaucoma","eosinophilic esophagitis","leprosy","psoriatic arthritis","pancreatic carcinoma","sclerosing cholangitis","migraine","osteoarthritis","epilepsy syndrome","bladder carcinoma","idiopathic pulmonary fibrosis","degenerative myopia","narcolepsy","multiple myeloma","renal cell carcinoma","psychotic disorder","liver cirrhosis","amyotrophic lateral sclerosis","restless legs syndrome","azoospermia","osteoporosis","refractive error","asthma","eosinophilic esophagitis","atopic dermatitis","primary biliary cirrhosis","type 1 diabetes mellitus","celiac disease","ulcerative colitis","multiple sclerosis","lung carcinoma","systemic lupus erythematosus","rheumatoid arthritis","psoriasis","alopecia areata","vitiligo","chronic lymphocytic leukemia","systemic scleroderma","polycystic ovary syndrome","ankylosing spondylitis","narcolepsy","squamous cell carcinoma","lung adenocarcinoma","psoriatic arthritis","schizophrenia","sclerosing cholangitis","type 2 diabetes mellitus","stomach carcinoma","hypothyroidism","esophageal carcinoma","central nervous system cancer","myocardial infarction","leprosy","cerebrovascular disease","coronary artery disease","melanoma","chronic kidney failure","bladder carcinoma","prostate carcinoma","basal cell carcinoma","idiopathic pulmonary fibrosis","chronic obstructive pulmonary disease","degenerative myopia","cleft lip","breast carcinoma","intracranial aneurysm","multiple myeloma","metabolic syndrome X","bipolar disorder","liver cirrhosis","endogenous depression","attention deficit hyperactivity disorder","thyroid carcinoma","amyotrophic lateral sclerosis","malaria","ovarian carcinoma","glaucoma","pancreatic carcinoma","open-angle glaucoma","obesity","osteoarthritis","migraine","atherosclerosis","nephrolithiasis","hypertension","epilepsy syndrome","psychotic disorder","renal cell carcinoma","azoospermia","osteoporosis","refractive error","restless legs syndrome","type 1 diabetes mellitus","celiac disease","vitiligo","polycystic ovary syndrome","psoriasis","asthma","multiple sclerosis","rheumatoid arthritis","ankylosing spondylitis","primary biliary cirrhosis","ulcerative colitis","systemic lupus erythematosus","atopic dermatitis","hypothyroidism","systemic scleroderma","psoriatic arthritis","cerebrovascular disease","lung carcinoma","melanoma","cleft lip","type 2 diabetes mellitus","malaria","coronary artery disease","myocardial infarction","chronic kidney failure","chronic lymphocytic leukemia","squamous cell carcinoma","pancreatic carcinoma","eosinophilic esophagitis","esophageal carcinoma","degenerative myopia","basal cell carcinoma","prostate carcinoma","lung adenocarcinoma","thyroid carcinoma","stomach carcinoma","schizophrenia","central nervous system cancer","leprosy","breast carcinoma","sclerosing cholangitis","chronic obstructive pulmonary disease","narcolepsy","intracranial aneurysm","bladder carcinoma","metabolic syndrome X","liver cirrhosis","glaucoma","amyotrophic lateral sclerosis","ovarian carcinoma","idiopathic pulmonary fibrosis","open-angle glaucoma","bipolar disorder","endogenous depression","attention deficit hyperactivity disorder","migraine","obesity","multiple myeloma","osteoarthritis","hypertension","nephrolithiasis","atherosclerosis","epilepsy syndrome","renal cell carcinoma","psychotic disorder","refractive error","restless legs syndrome","azoospermia","osteoporosis","multiple sclerosis","celiac disease","primary biliary cirrhosis","type 1 diabetes mellitus","ulcerative colitis","rheumatoid arthritis","asthma","psoriasis","ankylosing spondylitis","systemic lupus erythematosus","vitiligo","liver cirrhosis","systemic scleroderma","atopic dermatitis","chronic lymphocytic leukemia","type 2 diabetes mellitus","lung carcinoma","psoriatic arthritis","breast carcinoma","polycystic ovary syndrome","hypothyroidism","squamous cell carcinoma","sclerosing cholangitis","eosinophilic esophagitis","leprosy","esophageal carcinoma","cerebrovascular disease","schizophrenia","coronary artery disease","chronic kidney failure","myocardial infarction","chronic obstructive pulmonary disease","narcolepsy","melanoma","lung adenocarcinoma","central nervous system cancer","prostate carcinoma","stomach carcinoma","bladder carcinoma","degenerative myopia","basal cell carcinoma","metabolic syndrome X","thyroid carcinoma","intracranial aneurysm","ovarian carcinoma","cleft lip","multiple myeloma","bipolar disorder","idiopathic pulmonary fibrosis","malaria","endogenous depression","obesity","attention deficit hyperactivity disorder","pancreatic carcinoma","glaucoma","open-angle glaucoma","osteoarthritis","atherosclerosis","migraine","nephrolithiasis","epilepsy syndrome","hypertension","renal cell carcinoma","restless legs syndrome","psychotic disorder","azoospermia","osteoporosis","refractive error","psoriasis","celiac disease","ulcerative colitis","multiple sclerosis","type 1 diabetes mellitus","psoriatic arthritis","vitiligo","asthma","rheumatoid arthritis","primary biliary cirrhosis","systemic lupus erythematosus","atopic dermatitis","systemic scleroderma","polycystic ovary syndrome","leprosy","sclerosing cholangitis","hypothyroidism","type 2 diabetes mellitus","chronic lymphocytic leukemia","squamous cell carcinoma","lung carcinoma","degenerative myopia","esophageal carcinoma","chronic kidney failure","cerebrovascular disease","coronary artery disease","narcolepsy","eosinophilic esophagitis","prostate carcinoma","schizophrenia","central nervous system cancer","melanoma","liver cirrhosis","myocardial infarction","stomach carcinoma","breast carcinoma","lung adenocarcinoma","intracranial aneurysm","cleft lip","bladder carcinoma","thyroid carcinoma","basal cell carcinoma","ovarian carcinoma","metabolic syndrome X","chronic obstructive pulmonary disease","malaria","pancreatic carcinoma","bipolar disorder","endogenous depression","attention deficit hyperactivity disorder","idiopathic pulmonary fibrosis","glaucoma","obesity","multiple myeloma","open-angle glaucoma","atherosclerosis","nephrolithiasis","migraine","hypertension","osteoarthritis","epilepsy syndrome","renal cell carcinoma","psychotic disorder","restless legs syndrome","azoospermia","osteoporosis","refractive error","eosinophilic esophagitis","primary biliary cirrhosis","atopic dermatitis","type 1 diabetes mellitus","celiac disease","ulcerative colitis","multiple sclerosis","psoriasis","rheumatoid arthritis","lung carcinoma","vitiligo","systemic lupus erythematosus","polycystic ovary syndrome","chronic lymphocytic leukemia","systemic scleroderma","narcolepsy","squamous cell carcinoma","psoriatic arthritis","lung adenocarcinoma","type 2 diabetes mellitus","schizophrenia","sclerosing cholangitis","hypothyroidism","stomach carcinoma","esophageal carcinoma","myocardial infarction","cerebrovascular disease","central nervous system cancer","leprosy","melanoma","coronary artery disease","chronic kidney failure","prostate carcinoma","bladder carcinoma","cleft lip","basal cell carcinoma","degenerative myopia","idiopathic pulmonary fibrosis","chronic obstructive pulmonary disease","breast carcinoma","intracranial aneurysm","metabolic syndrome X","multiple myeloma","bipolar disorder","thyroid carcinoma","liver cirrhosis","endogenous depression","attention deficit hyperactivity disorder","malaria","ovarian carcinoma","pancreatic carcinoma","glaucoma","open-angle glaucoma","obesity","osteoarthritis","migraine","atherosclerosis","nephrolithiasis","hypertension","epilepsy syndrome","psychotic disorder","renal cell carcinoma","azoospermia","osteoporosis","refractive error","restless legs syndrome","intracranial aneurysm","metabolic syndrome X","coronary artery disease","cerebrovascular disease","myocardial infarction","endogenous depression","attention deficit hyperactivity disorder","glaucoma","open-angle glaucoma","central nervous system cancer","bipolar disorder","basal cell carcinoma","type 2 diabetes mellitus","prostate carcinoma","schizophrenia","obesity","chronic kidney failure","esophageal carcinoma","migraine","osteoarthritis","lung carcinoma","lung adenocarcinoma","squamous cell carcinoma","breast carcinoma","ulcerative colitis","malaria","pancreatic carcinoma","primary biliary cirrhosis","type 1 diabetes mellitus","rheumatoid arthritis","vitiligo","hypertension","psychotic disorder","celiac disease","melanoma","hypothyroidism","idiopathic pulmonary fibrosis","stomach carcinoma","systemic lupus erythematosus","bladder carcinoma","chronic obstructive pulmonary disease","multiple myeloma","multiple sclerosis","ovarian carcinoma","nephrolithiasis","refractive error","systemic scleroderma","chronic lymphocytic leukemia","psoriasis","polycystic ovary syndrome","cleft lip","thyroid carcinoma","sclerosing cholangitis","degenerative myopia","leprosy","atopic dermatitis","epilepsy syndrome","renal cell carcinoma","psoriatic arthritis","eosinophilic esophagitis","azoospermia","osteoporosis","narcolepsy","restless legs syndrome","liver cirrhosis","narcolepsy","psoriasis","celiac disease","multiple sclerosis","ulcerative colitis","psoriatic arthritis","type 1 diabetes mellitus","primary biliary cirrhosis","eosinophilic esophagitis","rheumatoid arthritis","vitiligo","systemic lupus erythematosus","systemic scleroderma","lung carcinoma","polycystic ovary syndrome","chronic lymphocytic leukemia","leprosy","type 2 diabetes mellitus","squamous cell carcinoma","sclerosing cholangitis","hypothyroidism","breast carcinoma","degenerative myopia","esophageal carcinoma","schizophrenia","cerebrovascular disease","chronic kidney failure","lung adenocarcinoma","coronary artery disease","central nervous system cancer","prostate carcinoma","melanoma","myocardial infarction","stomach carcinoma","liver cirrhosis","cleft lip","bladder carcinoma","basal cell carcinoma","chronic obstructive pulmonary disease","intracranial aneurysm","ovarian carcinoma","metabolic syndrome X","thyroid carcinoma","idiopathic pulmonary fibrosis","bipolar disorder","malaria","endogenous depression","attention deficit hyperactivity disorder","multiple myeloma","pancreatic carcinoma","glaucoma","obesity","open-angle glaucoma","osteoarthritis","migraine","epilepsy syndrome","nephrolithiasis","hypertension","renal cell carcinoma","psychotic disorder","restless legs syndrome","azoospermia","osteoporosis","refractive error","endogenous depression","bipolar disorder","schizophrenia","osteoarthritis","psychotic disorder","intracranial aneurysm","coronary artery disease","nephrolithiasis","myocardial infarction","glaucoma","cerebrovascular disease","type 2 diabetes mellitus","open-angle glaucoma","central nervous system cancer","rheumatoid arthritis","basal cell carcinoma","metabolic syndrome X","lung carcinoma","azoospermia","osteoporosis","renal cell carcinoma","ulcerative colitis","lung adenocarcinoma","prostate carcinoma","epilepsy syndrome","squamous cell carcinoma","chronic kidney failure","migraine","vitiligo","type 1 diabetes mellitus","sclerosing cholangitis","malaria","degenerative myopia","esophageal carcinoma","systemic lupus erythematosus","chronic obstructive pulmonary disease","pancreatic carcinoma","primary biliary cirrhosis","celiac disease","multiple sclerosis","chronic lymphocytic leukemia","breast carcinoma","systemic scleroderma","stomach carcinoma","melanoma","idiopathic pulmonary fibrosis","hypothyroidism","psoriasis","bladder carcinoma","obesity","hypertension","ovarian carcinoma","multiple myeloma","polycystic ovary syndrome","refractive error","cleft lip","thyroid carcinoma","leprosy","eosinophilic esophagitis","psoriatic arthritis","narcolepsy","liver cirrhosis","restless legs syndrome","schizophrenia","bipolar disorder","endogenous depression","osteoarthritis","type 2 diabetes mellitus","psychotic disorder","osteoporosis","intracranial aneurysm","renal cell carcinoma","epilepsy syndrome","coronary artery disease","rheumatoid arthritis","glaucoma","lung carcinoma","sclerosing cholangitis","degenerative myopia","metabolic syndrome X","ulcerative colitis","squamous cell carcinoma","nephrolithiasis","esophageal carcinoma","vitiligo","lung adenocarcinoma","myocardial infarction","type 1 diabetes mellitus","prostate carcinoma","chronic obstructive pulmonary disease","systemic lupus erythematosus","cerebrovascular disease","multiple sclerosis","chronic lymphocytic leukemia","central nervous system cancer","celiac disease","stomach carcinoma","open-angle glaucoma","primary biliary cirrhosis","systemic scleroderma","basal cell carcinoma","psoriasis","ovarian carcinoma","breast carcinoma","obesity","chronic kidney failure","polycystic ovary syndrome","idiopathic pulmonary fibrosis","melanoma","cleft lip","bladder carcinoma","hypothyroidism","migraine","eosinophilic esophagitis","malaria","leprosy","pancreatic carcinoma","multiple myeloma","psoriatic arthritis","hypertension","thyroid carcinoma","narcolepsy","refractive error","liver cirrhosis","restless legs syndrome","melanoma","lung adenocarcinoma","central nervous system cancer","glaucoma","lung carcinoma","bladder carcinoma","open-angle glaucoma","intracranial aneurysm","myocardial infarction","cerebrovascular disease","vitiligo","coronary artery disease","idiopathic pulmonary fibrosis","squamous cell carcinoma","multiple myeloma","migraine","breast carcinoma","stomach carcinoma","type 1 diabetes mellitus","chronic kidney failure","chronic obstructive pulmonary disease","esophageal carcinoma","endogenous depression","rheumatoid arthritis","celiac disease","malaria","chronic lymphocytic leukemia","bipolar disorder","prostate carcinoma","pancreatic carcinoma","ulcerative colitis","osteoarthritis","refractive error","primary biliary cirrhosis","schizophrenia","hypothyroidism","multiple sclerosis","systemic lupus erythematosus","psoriasis","degenerative myopia","metabolic syndrome X","systemic scleroderma","polycystic ovary syndrome","type 2 diabetes mellitus","hypertension","thyroid carcinoma","nephrolithiasis","sclerosing cholangitis","ovarian carcinoma","psychotic disorder","psoriatic arthritis","eosinophilic esophagitis","obesity","renal cell carcinoma","leprosy","cleft lip","restless legs syndrome","epilepsy syndrome","narcolepsy","liver cirrhosis","osteoporosis","endogenous depression","schizophrenia","psychotic disorder","osteoarthritis","nephrolithiasis","intracranial aneurysm","glaucoma","coronary artery disease","myocardial infarction","type 2 diabetes mellitus","cerebrovascular disease","open-angle glaucoma","rheumatoid arthritis","central nervous system cancer","chronic kidney failure","metabolic syndrome X","lung carcinoma","osteoporosis","renal cell carcinoma","ulcerative colitis","epilepsy syndrome","lung adenocarcinoma","squamous cell carcinoma","prostate carcinoma","type 1 diabetes mellitus","vitiligo","sclerosing cholangitis","degenerative myopia","esophageal carcinoma","systemic lupus erythematosus","migraine","chronic obstructive pulmonary disease","multiple sclerosis","celiac disease","malaria","primary biliary cirrhosis","chronic lymphocytic leukemia","breast carcinoma","systemic scleroderma","pancreatic carcinoma","melanoma","stomach carcinoma","obesity","psoriasis","idiopathic pulmonary fibrosis","hypothyroidism","ovarian carcinoma","bladder carcinoma","hypertension","polycystic ovary syndrome","cleft lip","multiple myeloma","refractive error","psoriatic arthritis","thyroid carcinoma","leprosy","eosinophilic esophagitis","narcolepsy","liver cirrhosis","restless legs syndrome","multiple myeloma","central nervous system cancer","lung adenocarcinoma","lung carcinoma","melanoma","chronic lymphocytic leukemia","ulcerative colitis","idiopathic pulmonary fibrosis","squamous cell carcinoma","stomach carcinoma","glaucoma","cerebrovascular disease","open-angle glaucoma","vitiligo","intracranial aneurysm","myocardial infarction","coronary artery disease","esophageal carcinoma","type 1 diabetes mellitus","chronic obstructive pulmonary disease","rheumatoid arthritis","sclerosing cholangitis","prostate carcinoma","systemic lupus erythematosus","multiple sclerosis","celiac disease","systemic scleroderma","chronic kidney failure","primary biliary cirrhosis","breast carcinoma","psoriasis","schizophrenia","migraine","degenerative myopia","endogenous depression","type 2 diabetes mellitus","hypothyroidism","malaria","pancreatic carcinoma","polycystic ovary syndrome","metabolic syndrome X","osteoarthritis","leprosy","eosinophilic esophagitis","psoriatic arthritis","refractive error","ovarian carcinoma","hypertension","thyroid carcinoma","nephrolithiasis","cleft lip","obesity","narcolepsy","psychotic disorder","renal cell carcinoma","liver cirrhosis","epilepsy syndrome","restless legs syndrome","osteoporosis","prostate carcinoma","ovarian carcinoma","renal cell carcinoma","type 2 diabetes mellitus","restless legs syndrome","thyroid carcinoma","obesity","central nervous system cancer","hypothyroidism","idiopathic pulmonary fibrosis","metabolic syndrome X","glaucoma","lung carcinoma","coronary artery disease","cerebrovascular disease","open-angle glaucoma","myocardial infarction","type 1 diabetes mellitus","multiple sclerosis","rheumatoid arthritis","epilepsy syndrome","lung adenocarcinoma","intracranial aneurysm","psoriasis","celiac disease","vitiligo","chronic kidney failure","squamous cell carcinoma","ulcerative colitis","cleft lip","polycystic ovary syndrome","schizophrenia","chronic lymphocytic leukemia","psoriatic arthritis","primary biliary cirrhosis","systemic lupus erythematosus","migraine","multiple myeloma","melanoma","systemic scleroderma","esophageal carcinoma","stomach carcinoma","degenerative myopia","endogenous depression","malaria","chronic obstructive pulmonary disease","pancreatic carcinoma","osteoarthritis","refractive error","leprosy","sclerosing cholangitis","hypertension","nephrolithiasis","eosinophilic esophagitis","narcolepsy","liver cirrhosis","psychotic disorder","osteoporosis","multiple sclerosis","type 1 diabetes mellitus","psoriasis","vitiligo","ulcerative colitis","rheumatoid arthritis","primary biliary cirrhosis","systemic lupus erythematosus","hypothyroidism","squamous cell carcinoma","esophageal carcinoma","systemic scleroderma","cerebrovascular disease","chronic kidney failure","polycystic ovary syndrome","lung carcinoma","coronary artery disease","psoriatic arthritis","chronic lymphocytic leukemia","stomach carcinoma","type 2 diabetes mellitus","thyroid carcinoma","myocardial infarction","melanoma","leprosy","eosinophilic esophagitis","sclerosing cholangitis","lung adenocarcinoma","narcolepsy","degenerative myopia","central nervous system cancer","liver cirrhosis","malaria","schizophrenia","prostate carcinoma","pancreatic carcinoma","intracranial aneurysm","chronic obstructive pulmonary disease","metabolic syndrome X","cleft lip","ovarian carcinoma","glaucoma","idiopathic pulmonary fibrosis","open-angle glaucoma","endogenous depression","hypertension","migraine","nephrolithiasis","multiple myeloma","obesity","osteoarthritis","epilepsy syndrome","renal cell carcinoma","psychotic disorder","refractive error","restless legs syndrome","osteoporosis","multiple myeloma","idiopathic pulmonary fibrosis","lung adenocarcinoma","lung carcinoma","glaucoma","open-angle glaucoma","intracranial aneurysm","myocardial infarction","cerebrovascular disease","chronic lymphocytic leukemia","coronary artery disease","prostate carcinoma","squamous cell carcinoma","melanoma","migraine","ulcerative colitis","stomach carcinoma","chronic obstructive pulmonary disease","esophageal carcinoma","type 1 diabetes mellitus","endogenous depression","vitiligo","malaria","rheumatoid arthritis","schizophrenia","refractive error","pancreatic carcinoma","osteoarthritis","systemic lupus erythematosus","multiple sclerosis","primary biliary cirrhosis","sclerosing cholangitis","systemic scleroderma","type 2 diabetes mellitus","chronic kidney failure","metabolic syndrome X","hypothyroidism","degenerative myopia","psoriasis","ovarian carcinoma","polycystic ovary syndrome","thyroid carcinoma","hypertension","cleft lip","leprosy","obesity","psychotic disorder","eosinophilic esophagitis","renal cell carcinoma","psoriatic arthritis","nephrolithiasis","restless legs syndrome","epilepsy syndrome","narcolepsy","liver cirrhosis","osteoporosis","coronary artery disease","myocardial infarction","malaria","pancreatic carcinoma","migraine","glaucoma","intracranial aneurysm","open-angle glaucoma","lung adenocarcinoma","lung carcinoma","hypothyroidism","chronic obstructive pulmonary disease","vitiligo","osteoarthritis","type 1 diabetes mellitus","chronic kidney failure","metabolic syndrome X","squamous cell carcinoma","endogenous depression","rheumatoid arthritis","idiopathic pulmonary fibrosis","primary biliary cirrhosis","thyroid carcinoma","melanoma","hypertension","prostate carcinoma","esophageal carcinoma","systemic lupus erythematosus","schizophrenia","stomach carcinoma","multiple sclerosis","multiple myeloma","ulcerative colitis","type 2 diabetes mellitus","psoriasis","systemic scleroderma","chronic lymphocytic leukemia","refractive error","polycystic ovary syndrome","nephrolithiasis","degenerative myopia","psychotic disorder","obesity","ovarian carcinoma","psoriatic arthritis","sclerosing cholangitis","eosinophilic esophagitis","cleft lip","leprosy","renal cell carcinoma","epilepsy syndrome","narcolepsy","restless legs syndrome","liver cirrhosis","osteoporosis","nephrolithiasis","hypertension","melanoma","type 1 diabetes mellitus","metabolic syndrome X","hypothyroidism","vitiligo","coronary artery disease","prostate carcinoma","rheumatoid arthritis","thyroid carcinoma","ovarian carcinoma","primary biliary cirrhosis","multiple sclerosis","myocardial infarction","lung carcinoma","type 2 diabetes mellitus","psoriasis","lung adenocarcinoma","ulcerative colitis","systemic lupus erythematosus","endogenous depression","squamous cell carcinoma","intracranial aneurysm","systemic scleroderma","obesity","schizophrenia","polycystic ovary syndrome","chronic lymphocytic leukemia","esophageal carcinoma","glaucoma","malaria","open-angle glaucoma","pancreatic carcinoma","stomach carcinoma","chronic obstructive pulmonary disease","idiopathic pulmonary fibrosis","migraine","degenerative myopia","epilepsy syndrome","leprosy","cleft lip","psoriatic arthritis","osteoarthritis","sclerosing cholangitis","multiple myeloma","eosinophilic esophagitis","psychotic disorder","narcolepsy","liver cirrhosis","renal cell carcinoma","refractive error","restless legs syndrome","osteoporosis","sclerosing cholangitis","multiple myeloma","systemic lupus erythematosus","systemic scleroderma","rheumatoid arthritis","type 1 diabetes mellitus","multiple sclerosis","lung carcinoma","ulcerative colitis","prostate carcinoma","primary biliary cirrhosis","lung adenocarcinoma","psoriasis","vitiligo","schizophrenia","squamous cell carcinoma","idiopathic pulmonary fibrosis","eosinophilic esophagitis","melanoma","coronary artery disease","type 2 diabetes mellitus","stomach carcinoma","myocardial infarction","intracranial aneurysm","polycystic ovary syndrome","esophageal carcinoma","glaucoma","chronic obstructive pulmonary disease","hypothyroidism","open-angle glaucoma","psoriatic arthritis","leprosy","endogenous depression","degenerative myopia","ovarian carcinoma","metabolic syndrome X","cleft lip","liver cirrhosis","narcolepsy","malaria","thyroid carcinoma","migraine","pancreatic carcinoma","osteoarthritis","obesity","epilepsy syndrome","nephrolithiasis","hypertension","renal cell carcinoma","psychotic disorder","refractive error","osteoporosis","restless legs syndrome","lung adenocarcinoma","lung carcinoma","coronary artery disease","rheumatoid arthritis","systemic scleroderma","squamous cell carcinoma","systemic lupus erythematosus","idiopathic pulmonary fibrosis","myocardial infarction","schizophrenia","stomach carcinoma","ulcerative colitis","multiple sclerosis","melanoma","esophageal carcinoma","type 1 diabetes mellitus","primary biliary cirrhosis","intracranial aneurysm","glaucoma","vitiligo","open-angle glaucoma","malaria","endogenous depression","migraine","psoriasis","pancreatic carcinoma","hypothyroidism","multiple myeloma","prostate carcinoma","type 2 diabetes mellitus","metabolic syndrome X","degenerative myopia","osteoarthritis","sclerosing cholangitis","hypertension","psoriatic arthritis","thyroid carcinoma","polycystic ovary syndrome","eosinophilic esophagitis","ovarian carcinoma","leprosy","psychotic disorder","obesity","nephrolithiasis","renal cell carcinoma","refractive error","epilepsy syndrome","cleft lip","liver cirrhosis","osteoporosis","narcolepsy","restless legs syndrome","polycystic ovary syndrome","type 2 diabetes mellitus","prostate carcinoma","type 1 diabetes mellitus","psoriasis","vitiligo","obesity","rheumatoid arthritis","metabolic syndrome X","ulcerative colitis","multiple sclerosis","ovarian carcinoma","systemic lupus erythematosus","schizophrenia","primary biliary cirrhosis","systemic scleroderma","coronary artery disease","squamous cell carcinoma","lung carcinoma","esophageal carcinoma","leprosy","degenerative myopia","psoriatic arthritis","hypothyroidism","intracranial aneurysm","idiopathic pulmonary fibrosis","endogenous depression","myocardial infarction","lung adenocarcinoma","melanoma","stomach carcinoma","sclerosing cholangitis","eosinophilic esophagitis","epilepsy syndrome","narcolepsy","glaucoma","thyroid carcinoma","open-angle glaucoma","malaria","multiple myeloma","pancreatic carcinoma","osteoarthritis","nephrolithiasis","renal cell carcinoma","hypertension","migraine","liver cirrhosis","psychotic disorder","restless legs syndrome","osteoporosis","refractive error","myocardial infarction","intracranial aneurysm","metabolic syndrome X","malaria","migraine","pancreatic carcinoma","glaucoma","open-angle glaucoma","hypertension","endogenous depression","lung adenocarcinoma","lung carcinoma","hypothyroidism","squamous cell carcinoma","osteoarthritis","prostate carcinoma","vitiligo","esophageal carcinoma","type 1 diabetes mellitus","schizophrenia","systemic lupus erythematosus","rheumatoid arthritis","type 2 diabetes mellitus","primary biliary cirrhosis","stomach carcinoma","idiopathic pulmonary fibrosis","melanoma","thyroid carcinoma","systemic scleroderma","multiple sclerosis","ulcerative colitis","psoriasis","multiple myeloma","obesity","psychotic disorder","refractive error","nephrolithiasis","polycystic ovary syndrome","degenerative myopia","ovarian carcinoma","sclerosing cholangitis","psoriatic arthritis","eosinophilic esophagitis","renal cell carcinoma","leprosy","epilepsy syndrome","narcolepsy","osteoporosis","restless legs syndrome","liver cirrhosis","lung carcinoma","psoriasis","vitiligo","prostate carcinoma","schizophrenia","type 1 diabetes mellitus","lung adenocarcinoma","squamous cell carcinoma","stomach carcinoma","psoriatic arthritis","melanoma","rheumatoid arthritis","multiple sclerosis","idiopathic pulmonary fibrosis","polycystic ovary syndrome","systemic lupus erythematosus","esophageal carcinoma","ulcerative colitis","endogenous depression","primary biliary cirrhosis","systemic scleroderma","type 2 diabetes mellitus","hypothyroidism","myocardial infarction","intracranial aneurysm","ovarian carcinoma","glaucoma","multiple myeloma","open-angle glaucoma","metabolic syndrome X","sclerosing cholangitis","osteoarthritis","eosinophilic esophagitis","malaria","thyroid carcinoma","pancreatic carcinoma","epilepsy syndrome","leprosy","narcolepsy","psychotic disorder","renal cell carcinoma","obesity","nephrolithiasis","migraine","osteoporosis","hypertension","liver cirrhosis","refractive error","restless legs syndrome","schizophrenia","psychotic disorder","osteoarthritis","intracranial aneurysm","nephrolithiasis","myocardial infarction","glaucoma","type 2 diabetes mellitus","open-angle glaucoma","rheumatoid arthritis","metabolic syndrome X","lung carcinoma","osteoporosis","renal cell carcinoma","ulcerative colitis","lung adenocarcinoma","prostate carcinoma","epilepsy syndrome","squamous cell carcinoma","migraine","vitiligo","type 1 diabetes mellitus","sclerosing cholangitis","malaria","esophageal carcinoma","systemic lupus erythematosus","pancreatic carcinoma","primary biliary cirrhosis","multiple sclerosis","systemic scleroderma","stomach carcinoma","melanoma","idiopathic pulmonary fibrosis","hypothyroidism","psoriasis","obesity","hypertension","ovarian carcinoma","multiple myeloma","polycystic ovary syndrome","refractive error","thyroid carcinoma","leprosy","eosinophilic esophagitis","psoriatic arthritis","narcolepsy","liver cirrhosis","restless legs syndrome","primary biliary cirrhosis","type 1 diabetes mellitus","ulcerative colitis","multiple sclerosis","lung carcinoma","rheumatoid arthritis","systemic lupus erythematosus","psoriasis","vitiligo","polycystic ovary syndrome","systemic scleroderma","narcolepsy","squamous cell carcinoma","lung adenocarcinoma","psoriatic arthritis","schizophrenia","type 2 diabetes mellitus","sclerosing cholangitis","stomach carcinoma","hypothyroidism","esophageal carcinoma","myocardial infarction","leprosy","melanoma","prostate carcinoma","idiopathic pulmonary fibrosis","intracranial aneurysm","multiple myeloma","metabolic syndrome X","liver cirrhosis","thyroid carcinoma","malaria","ovarian carcinoma","glaucoma","pancreatic carcinoma","open-angle glaucoma","obesity","osteoarthritis","migraine","nephrolithiasis","hypertension","epilepsy syndrome","psychotic disorder","renal cell carcinoma","osteoporosis","refractive error","restless legs syndrome","ovarian carcinoma","obesity","schizophrenia","type 2 diabetes mellitus","prostate carcinoma","rheumatoid arthritis","metabolic syndrome X","type 1 diabetes mellitus","ulcerative colitis","renal cell carcinoma","multiple sclerosis","osteoarthritis","lung carcinoma","systemic lupus erythematosus","intracranial aneurysm","vitiligo","systemic scleroderma","primary biliary cirrhosis","glaucoma","psychotic disorder","squamous cell carcinoma","polycystic ovary syndrome","psoriasis","myocardial infarction","osteoporosis","hypothyroidism","esophageal carcinoma","sclerosing cholangitis","lung adenocarcinoma","nephrolithiasis","thyroid carcinoma","idiopathic pulmonary fibrosis","open-angle glaucoma","restless legs syndrome","leprosy","melanoma","stomach carcinoma","psoriatic arthritis","hypertension","multiple myeloma","malaria","migraine","pancreatic carcinoma","narcolepsy","liver cirrhosis","refractive error","squamous cell carcinoma","stomach carcinoma","lung carcinoma","lung adenocarcinoma","type 1 diabetes mellitus","type 2 diabetes mellitus","idiopathic pulmonary fibrosis","rheumatoid arthritis","schizophrenia","melanoma","multiple sclerosis","vitiligo","myocardial infarction","ulcerative colitis","metabolic syndrome X","systemic lupus erythematosus","psoriasis","primary biliary cirrhosis","prostate carcinoma","intracranial aneurysm","systemic scleroderma","glaucoma","hypothyroidism","multiple myeloma","open-angle glaucoma","polycystic ovary syndrome","malaria","obesity","pancreatic carcinoma","migraine","sclerosing cholangitis","psoriatic arthritis","leprosy","ovarian carcinoma","osteoarthritis","thyroid carcinoma","hypertension","narcolepsy","nephrolithiasis","psychotic disorder","renal cell carcinoma","liver cirrhosis","osteoporosis","refractive error","restless legs syndrome","open-angle glaucoma","intracranial aneurysm","myocardial infarction","migraine","refractive error","lung adenocarcinoma","schizophrenia","lung carcinoma","idiopathic pulmonary fibrosis","multiple myeloma","osteoarthritis","melanoma","malaria","pancreatic carcinoma","prostate carcinoma","vitiligo","squamous cell carcinoma","metabolic syndrome X","type 1 diabetes mellitus","ulcerative colitis","psychotic disorder","hypothyroidism","rheumatoid arthritis","primary biliary cirrhosis","stomach carcinoma","type 2 diabetes mellitus","systemic lupus erythematosus","nephrolithiasis","multiple sclerosis","hypertension","systemic scleroderma","thyroid carcinoma","psoriasis","ovarian carcinoma","renal cell carcinoma","sclerosing cholangitis","obesity","polycystic ovary syndrome","restless legs syndrome","psoriatic arthritis","leprosy","osteoporosis","narcolepsy","liver cirrhosis","myocardial infarction","nephrolithiasis","metabolic syndrome X","melanoma","type 1 diabetes mellitus","hypothyroidism","vitiligo","intracranial aneurysm","prostate carcinoma","malaria","migraine","lung carcinoma","pancreatic carcinoma","rheumatoid arthritis","lung adenocarcinoma","open-angle glaucoma","squamous cell carcinoma","thyroid carcinoma","type 2 diabetes mellitus","systemic lupus erythematosus","primary biliary cirrhosis","schizophrenia","osteoarthritis","multiple sclerosis","ovarian carcinoma","ulcerative colitis","psoriasis","systemic scleroderma","stomach carcinoma","idiopathic pulmonary fibrosis","obesity","polycystic ovary syndrome","multiple myeloma","psychotic disorder","leprosy","psoriatic arthritis","sclerosing cholangitis","refractive error","narcolepsy","renal cell carcinoma","liver cirrhosis","restless legs syndrome","osteoporosis","thyroid carcinoma","type 1 diabetes mellitus","vitiligo","rheumatoid arthritis","myocardial infarction","multiple sclerosis","psoriasis","primary biliary cirrhosis","ulcerative colitis","systemic lupus erythematosus","melanoma","lung carcinoma","systemic scleroderma","prostate carcinoma","malaria","squamous cell carcinoma","type 2 diabetes mellitus","lung adenocarcinoma","metabolic syndrome X","polycystic ovary syndrome","intracranial aneurysm","pancreatic carcinoma","nephrolithiasis","open-angle glaucoma","migraine","ovarian carcinoma","psoriatic arthritis","schizophrenia","stomach carcinoma","idiopathic pulmonary fibrosis","leprosy","obesity","osteoarthritis","renal cell carcinoma","sclerosing cholangitis","restless legs syndrome","multiple myeloma","narcolepsy","liver cirrhosis","refractive error","psychotic disorder","osteoporosis","lung adenocarcinoma","lung carcinoma","squamous cell carcinoma","prostate carcinoma","stomach carcinoma","multiple myeloma","melanoma","open-angle glaucoma","myocardial infarction","intracranial aneurysm","type 1 diabetes mellitus","ulcerative colitis","vitiligo","schizophrenia","rheumatoid arthritis","systemic lupus erythematosus","migraine","multiple sclerosis","type 2 diabetes mellitus","primary biliary cirrhosis","systemic scleroderma","malaria","ovarian carcinoma","psoriasis","pancreatic carcinoma","metabolic syndrome X","osteoarthritis","polycystic ovary syndrome","sclerosing cholangitis","thyroid carcinoma","refractive error","obesity","renal cell carcinoma","restless legs syndrome","psoriatic arthritis","leprosy","nephrolithiasis","psychotic disorder","narcolepsy","liver cirrhosis","osteoporosis","open-angle glaucoma","myocardial infarction","schizophrenia","prostate carcinoma","metabolic syndrome X","migraine","osteoarthritis","ulcerative colitis","lung adenocarcinoma","lung carcinoma","psychotic disorder","malaria","multiple myeloma","pancreatic carcinoma","melanoma","refractive error","vitiligo","squamous cell carcinoma","type 1 diabetes mellitus","rheumatoid arthritis","type 2 diabetes mellitus","primary biliary cirrhosis","systemic lupus erythematosus","nephrolithiasis","multiple sclerosis","stomach carcinoma","systemic scleroderma","psoriasis","sclerosing cholangitis","obesity","ovarian carcinoma","polycystic ovary syndrome","thyroid carcinoma","leprosy","renal cell carcinoma","psoriatic arthritis","osteoporosis","narcolepsy","restless legs syndrome","liver cirrhosis","ulcerative colitis","multiple sclerosis","type 1 diabetes mellitus","rheumatoid arthritis","primary biliary cirrhosis","psoriasis","systemic lupus erythematosus","vitiligo","type 2 diabetes mellitus","sclerosing cholangitis","systemic scleroderma","lung carcinoma","psoriatic arthritis","polycystic ovary syndrome","narcolepsy","prostate carcinoma","squamous cell carcinoma","schizophrenia","ovarian carcinoma","metabolic syndrome X","lung adenocarcinoma","myocardial infarction","melanoma","stomach carcinoma","obesity","thyroid carcinoma","multiple myeloma","liver cirrhosis","malaria","open-angle glaucoma","pancreatic carcinoma","nephrolithiasis","osteoarthritis","migraine","renal cell carcinoma","psychotic disorder","osteoporosis","restless legs syndrome","refractive error","multiple sclerosis","primary biliary cirrhosis","type 1 diabetes mellitus","ulcerative colitis","rheumatoid arthritis","psoriasis","systemic lupus erythematosus","vitiligo","systemic scleroderma","type 2 diabetes mellitus","lung carcinoma","psoriatic arthritis","polycystic ovary syndrome","squamous cell carcinoma","sclerosing cholangitis","schizophrenia","myocardial infarction","narcolepsy","melanoma","lung adenocarcinoma","prostate carcinoma","stomach carcinoma","metabolic syndrome X","thyroid carcinoma","ovarian carcinoma","multiple myeloma","malaria","obesity","pancreatic carcinoma","open-angle glaucoma","osteoarthritis","migraine","nephrolithiasis","renal cell carcinoma","restless legs syndrome","psychotic disorder","osteoporosis","refractive error","lung carcinoma","squamous cell carcinoma","melanoma","stomach carcinoma","multiple myeloma","myocardial infarction","open-angle glaucoma","type 1 diabetes mellitus","prostate carcinoma","vitiligo","schizophrenia","rheumatoid arthritis","ulcerative colitis","systemic lupus erythematosus","multiple sclerosis","migraine","primary biliary cirrhosis","malaria","systemic scleroderma","pancreatic carcinoma","type 2 diabetes mellitus","psoriasis","metabolic syndrome X","osteoarthritis","sclerosing cholangitis","polycystic ovary syndrome","refractive error","thyroid carcinoma","ovarian carcinoma","psoriatic arthritis","obesity","nephrolithiasis","psychotic disorder","renal cell carcinoma","narcolepsy","restless legs syndrome","osteoporosis","squamous cell carcinoma","stomach carcinoma","melanoma","type 1 diabetes mellitus","multiple myeloma","myocardial infarction","systemic lupus erythematosus","rheumatoid arthritis","prostate carcinoma","vitiligo","ulcerative colitis","multiple sclerosis","schizophrenia","open-angle glaucoma","primary biliary cirrhosis","systemic scleroderma","psoriasis","type 2 diabetes mellitus","migraine","malaria","polycystic ovary syndrome","sclerosing cholangitis","pancreatic carcinoma","metabolic syndrome X","osteoarthritis","psoriatic arthritis","ovarian carcinoma","thyroid carcinoma","obesity","narcolepsy","refractive error","nephrolithiasis","renal cell carcinoma","psychotic disorder","restless legs syndrome","osteoporosis","pancreatic carcinoma","myocardial infarction","type 1 diabetes mellitus","vitiligo","migraine","osteoarthritis","open-angle glaucoma","rheumatoid arthritis","primary biliary cirrhosis","metabolic syndrome X","multiple sclerosis","squamous cell carcinoma","systemic lupus erythematosus","psoriasis","melanoma","ulcerative colitis","schizophrenia","prostate carcinoma","systemic scleroderma","polycystic ovary syndrome","thyroid carcinoma","type 2 diabetes mellitus","stomach carcinoma","multiple myeloma","refractive error","psoriatic arthritis","psychotic disorder","nephrolithiasis","ovarian carcinoma","obesity","sclerosing cholangitis","narcolepsy","renal cell carcinoma","restless legs syndrome","osteoporosis","vitiligo","rheumatoid arthritis","squamous cell carcinoma","type 1 diabetes mellitus","stomach carcinoma","myocardial infarction","multiple myeloma","open-angle glaucoma","psoriasis","multiple sclerosis","systemic lupus erythematosus","primary biliary cirrhosis","ulcerative colitis","nephrolithiasis","systemic scleroderma","polycystic ovary syndrome","prostate carcinoma","schizophrenia","metabolic syndrome X","migraine","type 2 diabetes mellitus","thyroid carcinoma","pancreatic carcinoma","psoriatic arthritis","osteoarthritis","sclerosing cholangitis","ovarian carcinoma","refractive error","obesity","narcolepsy","psychotic disorder","renal cell carcinoma","restless legs syndrome","osteoporosis","type 2 diabetes mellitus","obesity","primary biliary cirrhosis","schizophrenia","rheumatoid arthritis","myocardial infarction","prostate carcinoma","ovarian carcinoma","type 1 diabetes mellitus","ulcerative colitis","multiple sclerosis","squamous cell carcinoma","systemic lupus erythematosus","vitiligo","nephrolithiasis","polycystic ovary syndrome","systemic scleroderma","psoriasis","open-angle glaucoma","stomach carcinoma","migraine","pancreatic carcinoma","osteoarthritis","thyroid carcinoma","sclerosing cholangitis","renal cell carcinoma","psoriatic arthritis","psychotic disorder","multiple myeloma","narcolepsy","restless legs syndrome","osteoporosis","refractive error","myocardial infarction","open-angle glaucoma","pancreatic carcinoma","osteoarthritis","vitiligo","primary biliary cirrhosis","type 1 diabetes mellitus","squamous cell carcinoma","multiple myeloma","rheumatoid arthritis","prostate carcinoma","schizophrenia","refractive error","systemic lupus erythematosus","ulcerative colitis","stomach carcinoma","multiple sclerosis","type 2 diabetes mellitus","thyroid carcinoma","systemic scleroderma","psoriasis","psychotic disorder","nephrolithiasis","polycystic ovary syndrome","ovarian carcinoma","obesity","sclerosing cholangitis","psoriatic arthritis","renal cell carcinoma","restless legs syndrome","narcolepsy","osteoporosis","open-angle glaucoma","myocardial infarction","prostate carcinoma","ulcerative colitis","sclerosing cholangitis","squamous cell carcinoma","type 1 diabetes mellitus","systemic lupus erythematosus","rheumatoid arthritis","systemic scleroderma","stomach carcinoma","multiple sclerosis","vitiligo","primary biliary cirrhosis","schizophrenia","psoriasis","type 2 diabetes mellitus","pancreatic carcinoma","osteoarthritis","refractive error","polycystic ovary syndrome","ovarian carcinoma","psoriatic arthritis","thyroid carcinoma","obesity","psychotic disorder","nephrolithiasis","renal cell carcinoma","narcolepsy","restless legs syndrome","osteoporosis","primary biliary cirrhosis","type 1 diabetes mellitus","ulcerative colitis","rheumatoid arthritis","psoriasis","systemic lupus erythematosus","vitiligo","systemic scleroderma","psoriatic arthritis","type 2 diabetes mellitus","polycystic ovary syndrome","squamous cell carcinoma","sclerosing cholangitis","schizophrenia","myocardial infarction","narcolepsy","prostate carcinoma","stomach carcinoma","thyroid carcinoma","ovarian carcinoma","obesity","pancreatic carcinoma","open-angle glaucoma","osteoarthritis","nephrolithiasis","renal cell carcinoma","psychotic disorder","restless legs syndrome","osteoporosis","refractive error","osteoarthritis","pancreatic carcinoma","open-angle glaucoma","primary biliary cirrhosis","rheumatoid arthritis","vitiligo","type 1 diabetes mellitus","schizophrenia","squamous cell carcinoma","systemic lupus erythematosus","prostate carcinoma","ulcerative colitis","systemic scleroderma","refractive error","type 2 diabetes mellitus","stomach carcinoma","psoriasis","thyroid carcinoma","psychotic disorder","polycystic ovary syndrome","nephrolithiasis","obesity","ovarian carcinoma","sclerosing cholangitis","psoriatic arthritis","renal cell carcinoma","restless legs syndrome","narcolepsy","osteoporosis","psoriasis","ulcerative colitis","type 1 diabetes mellitus","primary biliary cirrhosis","rheumatoid arthritis","psoriatic arthritis","vitiligo","systemic lupus erythematosus","systemic scleroderma","polycystic ovary syndrome","type 2 diabetes mellitus","sclerosing cholangitis","squamous cell carcinoma","schizophrenia","prostate carcinoma","ovarian carcinoma","stomach carcinoma","thyroid carcinoma","obesity","pancreatic carcinoma","open-angle glaucoma","osteoarthritis","nephrolithiasis","renal cell carcinoma","psychotic disorder","restless legs syndrome","osteoporosis","refractive error","schizophrenia","psychotic disorder","osteoarthritis","type 1 diabetes mellitus","vitiligo","rheumatoid arthritis","prostate carcinoma","type 2 diabetes mellitus","thyroid carcinoma","ovarian carcinoma","primary biliary cirrhosis","ulcerative colitis","open-angle glaucoma","psoriasis","systemic lupus erythematosus","squamous cell carcinoma","systemic scleroderma","obesity","polycystic ovary syndrome","pancreatic carcinoma","sclerosing cholangitis","stomach carcinoma","renal cell carcinoma","osteoporosis","psoriatic arthritis","refractive error","restless legs syndrome","ovarian carcinoma","type 2 diabetes mellitus","prostate carcinoma","rheumatoid arthritis","polycystic ovary syndrome","schizophrenia","type 1 diabetes mellitus","systemic lupus erythematosus","systemic scleroderma","ulcerative colitis","squamous cell carcinoma","primary biliary cirrhosis","vitiligo","psoriasis","renal cell carcinoma","thyroid carcinoma","restless legs syndrome","stomach carcinoma","open-angle glaucoma","psoriatic arthritis","sclerosing cholangitis","osteoarthritis","pancreatic carcinoma","psychotic disorder","osteoporosis","refractive error","refractive error","osteoarthritis","pancreatic carcinoma","schizophrenia","prostate carcinoma","vitiligo","squamous cell carcinoma","type 1 diabetes mellitus","ulcerative colitis","primary biliary cirrhosis","rheumatoid arthritis","stomach carcinoma","type 2 diabetes mellitus","systemic lupus erythematosus","psychotic disorder","thyroid carcinoma","systemic scleroderma","psoriasis","ovarian carcinoma","renal cell carcinoma","sclerosing cholangitis","polycystic ovary syndrome","restless legs syndrome","psoriatic arthritis","osteoporosis","schizophrenia","psychotic disorder","pancreatic carcinoma","primary biliary cirrhosis","rheumatoid arthritis","type 2 diabetes mellitus","vitiligo","type 1 diabetes mellitus","squamous cell carcinoma","prostate carcinoma","ulcerative colitis","systemic lupus erythematosus","systemic scleroderma","renal cell carcinoma","osteoporosis","sclerosing cholangitis","stomach carcinoma","psoriasis","refractive error","thyroid carcinoma","polycystic ovary syndrome","ovarian carcinoma","psoriatic arthritis","restless legs syndrome","schizophrenia","type 2 diabetes mellitus","psychotic disorder","renal cell carcinoma","rheumatoid arthritis","sclerosing cholangitis","ulcerative colitis","squamous cell carcinoma","vitiligo","type 1 diabetes mellitus","prostate carcinoma","systemic lupus erythematosus","stomach carcinoma","primary biliary cirrhosis","systemic scleroderma","psoriasis","ovarian carcinoma","polycystic ovary syndrome","pancreatic carcinoma","psoriatic arthritis","thyroid carcinoma","refractive error","restless legs syndrome","prostate carcinoma","type 2 diabetes mellitus","rheumatoid arthritis","schizophrenia","type 1 diabetes mellitus","ulcerative colitis","systemic lupus erythematosus","polycystic ovary syndrome","systemic scleroderma","primary biliary cirrhosis","vitiligo","psoriasis","renal cell carcinoma","thyroid carcinoma","squamous cell carcinoma","restless legs syndrome","psoriatic arthritis","sclerosing cholangitis","stomach carcinoma","pancreatic carcinoma","psychotic disorder","refractive error","type 1 diabetes mellitus","vitiligo","rheumatoid arthritis","primary biliary cirrhosis","squamous cell carcinoma","systemic lupus erythematosus","psoriasis","ulcerative colitis","prostate carcinoma","schizophrenia","systemic scleroderma","polycystic ovary syndrome","thyroid carcinoma","type 2 diabetes mellitus","stomach carcinoma","refractive error","psoriatic arthritis","psychotic disorder","sclerosing cholangitis","renal cell carcinoma","restless legs syndrome","psoriasis","type 2 diabetes mellitus","vitiligo","type 1 diabetes mellitus","prostate carcinoma","rheumatoid arthritis","primary biliary cirrhosis","ulcerative colitis","psoriatic arthritis","systemic lupus erythematosus","systemic scleroderma","squamous cell carcinoma","schizophrenia","stomach carcinoma","sclerosing cholangitis","thyroid carcinoma","renal cell carcinoma","psychotic disorder","restless legs syndrome","refractive error","systemic scleroderma","systemic lupus erythematosus","ulcerative colitis","rheumatoid arthritis","type 1 diabetes mellitus","vitiligo","psoriasis","type 2 diabetes mellitus","sclerosing cholangitis","psoriatic arthritis","squamous cell carcinoma","schizophrenia","prostate carcinoma","stomach carcinoma","thyroid carcinoma","psychotic disorder","renal cell carcinoma","refractive error","restless legs syndrome","type 2 diabetes mellitus","type 1 diabetes mellitus","ulcerative colitis","schizophrenia","rheumatoid arthritis","vitiligo","squamous cell carcinoma","psoriasis","systemic lupus erythematosus","stomach carcinoma","systemic scleroderma","sclerosing cholangitis","thyroid carcinoma","renal cell carcinoma","restless legs syndrome","psoriatic arthritis","psychotic disorder","refractive error","psoriatic arthritis","type 1 diabetes mellitus","vitiligo","systemic scleroderma","rheumatoid arthritis","ulcerative colitis","systemic lupus erythematosus","type 2 diabetes mellitus","squamous cell carcinoma","sclerosing cholangitis","schizophrenia","stomach carcinoma","thyroid carcinoma","renal cell carcinoma","psychotic disorder","restless legs syndrome","refractive error","ulcerative colitis","rheumatoid arthritis","type 1 diabetes mellitus","vitiligo","systemic scleroderma","systemic lupus erythematosus","type 2 diabetes mellitus","sclerosing cholangitis","squamous cell carcinoma","schizophrenia","stomach carcinoma","thyroid carcinoma","renal cell carcinoma","restless legs syndrome","psychotic disorder","refractive error","schizophrenia","type 2 diabetes mellitus","rheumatoid arthritis","renal cell carcinoma","ulcerative colitis","squamous cell carcinoma","vitiligo","type 1 diabetes mellitus","sclerosing cholangitis","systemic lupus erythematosus","systemic scleroderma","stomach carcinoma","refractive error","thyroid carcinoma","restless legs syndrome","schizophrenia","vitiligo","squamous cell carcinoma","type 1 diabetes mellitus","ulcerative colitis","rheumatoid arthritis","stomach carcinoma","type 2 diabetes mellitus","systemic lupus erythematosus","thyroid carcinoma","systemic scleroderma","renal cell carcinoma","sclerosing cholangitis","restless legs syndrome","schizophrenia","type 2 diabetes mellitus","thyroid carcinoma","restless legs syndrome","rheumatoid arthritis","type 1 diabetes mellitus","squamous cell carcinoma","ulcerative colitis","vitiligo","sclerosing cholangitis","systemic lupus erythematosus","systemic scleroderma","stomach carcinoma","type 2 diabetes mellitus","thyroid carcinoma","type 1 diabetes mellitus","rheumatoid arthritis","vitiligo","squamous cell carcinoma","ulcerative colitis","schizophrenia","systemic lupus erythematosus","systemic scleroderma","stomach carcinoma","sclerosing cholangitis","systemic lupus erythematosus","systemic scleroderma","type 1 diabetes mellitus","vitiligo","ulcerative colitis","type 2 diabetes mellitus","squamous cell carcinoma","schizophrenia","sclerosing cholangitis","thyroid carcinoma","stomach carcinoma","type 2 diabetes mellitus","sclerosing cholangitis","ulcerative colitis","squamous cell carcinoma","vitiligo","type 1 diabetes mellitus","systemic lupus erythematosus","stomach carcinoma","systemic scleroderma","thyroid carcinoma","ulcerative colitis","systemic lupus erythematosus","systemic scleroderma","type 1 diabetes mellitus","vitiligo","type 2 diabetes mellitus","squamous cell carcinoma","stomach carcinoma","thyroid carcinoma","stomach carcinoma","type 1 diabetes mellitus","type 2 diabetes mellitus","vitiligo","ulcerative colitis","systemic lupus erythematosus","systemic scleroderma","thyroid carcinoma","type 1 diabetes mellitus","type 2 diabetes mellitus","vitiligo","ulcerative colitis","systemic lupus erythematosus","systemic scleroderma","thyroid carcinoma","systemic scleroderma","ulcerative colitis","type 1 diabetes mellitus","vitiligo","type 2 diabetes mellitus","thyroid carcinoma","ulcerative colitis","type 1 diabetes mellitus","vitiligo","type 2 diabetes mellitus","thyroid carcinoma","type 1 diabetes mellitus","vitiligo","ulcerative colitis","type 2 diabetes mellitus","vitiligo","ulcerative colitis","type 2 diabetes mellitus","ulcerative colitis","vitiligo","vitiligo"],[0.150427,0.141439,0.069386,0.050564,0.044876,0.030951,0.01922,0.018418,0.015345,0.01615,0.014853,0.008748,0.009416,0.005869,0.007601,0.005601,0.005023,0.004771,0.004704,0.004614,0.004309,0.003778,0.003313,0.004107,0.003076,0.00305,0.002987,0.004556,0.003097,0.003068,0.003197,0.002587,0.004278,0.002502,0.002707,0.002711,0.002775,0.0021,0.002053,0.001939,0.0022,0.003201,0.001819,0.001652,0.001924,0.00178,0.001429,0.001649,0.001476,0.001596,0.00292,0.001436,0.00154,0.001771,0.001462,0.001537,0.001873,0.001191,0.001417,0.001253,0.00118,0.000942,0.001462,0.000773,0.000963,0.000719,0.001024,0.000888,0.000754,0.000731,0.001437,0.000513,0.00047,0.000681,0.001583,0.000388,0.000481,0.000838,0.000838,0.000353,0.000345,0.160023,0.101084,0.065648,0.044852,0.042114,0.032889,0.024897,0.02863,0.023029,0.017142,0.018587,0.01458,0.014448,0.012293,0.01257,0.014415,0.011696,0.011465,0.011139,0.008949,0.01298,0.006343,0.010423,0.009588,0.004354,0.005881,0.005559,0.004507,0.005792,0.004174,0.005367,0.004756,0.003266,0.002927,0.006643,0.003507,0.004457,0.003175,0.002275,0.002419,0.002182,0.002446,0.002038,0.002665,0.00401,0.00192,0.00325,0.002371,0.001871,0.002297,0.002663,0.001753,0.006157,0.001884,0.001806,0.00608,0.001762,0.001582,0.00088,0.001183,0.000815,0.000806,0.000895,0.000891,0.001263,0.001329,0.00079,0.000837,0.001123,0.000721,0.001327,0.00054,0.000771,0.000634,0.000766,0.000255,0.000746,0.000657,0.000657,0.000254,0.071186,0.054359,0.054411,0.155277,0.045097,0.045749,0.06065,0.040112,0.039335,0.037149,0.04032,0.031256,0.03111,0.036918,0.038414,0.026349,0.026245,0.039239,0.020944,0.018737,0.02088,0.011905,0.023118,0.046941,0.019293,0.015304,0.028875,0.011055,0.018079,0.01819,0.030065,0.018211,0.016221,0.011176,0.010922,0.014364,0.008754,0.01492,0.00871,0.017258,0.011978,0.006631,0.006332,0.012705,0.005491,0.005952,0.008306,0.007036,0.011124,0.006454,0.009414,0.005011,0.010597,0.005194,0.003716,0.003326,0.0033,0.022159,0.022017,0.004564,0.003132,0.004296,0.005114,0.007581,0.003061,0.005035,0.002763,0.003954,0.005459,0.002062,0.006008,0.002232,0.00228,0.00472,0.00137,0.0046,0.0046,0.004509,0.001176,0.107912,0.060064,0.062897,0.096451,0.07102,0.042607,0.037113,0.038254,0.028951,0.02498,0.014788,0.014621,0.01335,0.011862,0.010222,0.015271,0.011165,0.009319,0.009128,0.00964,0.010346,0.006776,0.008279,0.007298,0.008132,0.007268,0.006499,0.005871,0.00667,0.009639,0.005318,0.006786,0.006178,0.007333,0.005035,0.0062,0.005675,0.004709,0.00569,0.005078,0.007661,0.005227,0.004384,0.004712,0.005897,0.003331,0.00362,0.004057,0.002677,0.002664,0.004157,0.003155,0.002365,0.004083,0.003311,0.003002,0.003456,0.005256,0.005563,0.002589,0.003364,0.004108,0.002188,0.001688,0.002298,0.00284,0.00211,0.004136,0.001485,0.004092,0.001773,0.002154,0.000848,0.000815,0.001204,0.001227,0.000996,0.000996,0.204779,0.124395,0.084399,0.04311,0.039813,0.026495,0.021312,0.017003,0.016709,0.016715,0.015401,0.02101,0.013782,0.014215,0.013263,0.013945,0.011807,0.02871,0.010743,0.011656,0.006265,0.00687,0.005363,0.003656,0.005095,0.004308,0.00551,0.002602,0.00351,0.002345,0.003104,0.004483,0.012349,0.002226,0.00544,0.012216,0.002798,0.002558,0.002292,0.002033,0.002226,0.002884,0.001867,0.002646,0.001711,0.002871,0.001725,0.003181,0.001571,0.001712,0.001558,0.001166,0.002084,0.000952,0.001778,0.001296,0.001239,0.000937,0.000764,0.000911,0.004137,0.000753,0.001115,0.000853,0.001113,0.006419,0.001181,0.000917,0.000637,0.000605,0.000522,0.000738,0.000852,0.000262,0.000289,0.000641,0.000641,0.093586,0.062428,0.059832,0.040694,0.033089,0.025583,0.023643,0.024248,0.020237,0.021841,0.018571,0.017191,0.01608,0.013194,0.020293,0.011828,0.013364,0.015102,0.01297,0.011229,0.013015,0.009379,0.010635,0.011116,0.008637,0.01019,0.008618,0.006426,0.008515,0.005614,0.006572,0.006795,0.010083,0.009312,0.006554,0.005831,0.00489,0.006539,0.003838,0.00448,0.004111,0.004004,0.003878,0.002764,0.006094,0.002597,0.002363,0.002223,0.002528,0.002194,0.004909,0.002262,0.002503,0.001878,0.002008,0.002374,0.003305,0.002615,0.001822,0.00154,0.005524,0.005462,0.00186,0.00152,0.001188,0.001182,0.001241,0.00151,0.001208,0.001031,0.001848,0.000702,0.002461,0.002461,0.000708,0.001118,0.173151,0.110146,0.073452,0.045589,0.033323,0.031981,0.062154,0.020623,0.011637,0.011903,0.011499,0.011424,0.010192,0.010336,0.012466,0.008771,0.008239,0.007918,0.007146,0.007262,0.006223,0.004687,0.005591,0.004417,0.004157,0.007911,0.004272,0.004915,0.00542,0.00376,0.00324,0.003649,0.003615,0.003085,0.003204,0.002831,0.005342,0.003267,0.002923,0.002184,0.002463,0.002346,0.002344,0.002951,0.007959,0.001608,0.007856,0.001439,0.002253,0.001892,0.001419,0.001569,0.001574,0.001821,0.002572,0.001713,0.001378,0.001656,0.001432,0.001624,0.002111,0.001691,0.001367,0.000948,0.00103,0.001209,0.001213,0.000809,0.00069,0.000425,0.000858,0.000996,0.000996,0.000391,0.000605,0.385465,0.025119,0.021244,0.01614,0.011692,0.008945,0.00754,0.006732,0.00665,0.005712,0.006077,0.005258,0.004896,0.004638,0.003925,0.003509,0.003483,0.003073,0.00304,0.003179,0.002628,0.002313,0.002249,0.002292,0.002208,0.00218,0.002095,0.002081,0.001961,0.00191,0.001993,0.002033,0.001632,0.001606,0.001561,0.001905,0.001822,0.001433,0.001446,0.001548,0.001371,0.00121,0.001135,0.001183,0.001478,0.001106,0.00109,0.000974,0.000972,0.00083,0.000693,0.000999,0.000719,0.000802,0.00063,0.000625,0.00053,0.000514,0.000404,0.000488,0.000348,0.000311,0.000327,0.000302,0.000454,0.000366,0.000294,0.000283,0.000452,0.000599,0.000599,0.00044,0.000233,0.000179,0.223558,0.107127,0.070845,0.068993,0.035183,0.018545,0.012147,0.018947,0.008587,0.017902,0.01042,0.007646,0.008362,0.006117,0.007306,0.005318,0.005562,0.005589,0.006063,0.004632,0.004044,0.003747,0.003903,0.003585,0.003654,0.00323,0.003219,0.00564,0.003991,0.003562,0.003104,0.003371,0.002835,0.005326,0.002876,0.002599,0.00415,0.002489,0.002276,0.002801,0.003254,0.002175,0.001891,0.002096,0.00221,0.001753,0.00158,0.002063,0.001295,0.001834,0.001269,0.001359,0.001471,0.001315,0.0012,0.001118,0.001281,0.001688,0.000951,0.002683,0.001127,0.000949,0.000965,0.000856,0.00083,0.003786,0.000602,0.000888,0.000361,0.000873,0.000305,0.000516,0.000516,0.177757,0.102429,0.08842,0.06831,0.061989,0.056745,0.047239,0.056031,0.036668,0.015365,0.016767,0.0109,0.018451,0.00937,0.009328,0.013444,0.013413,0.016151,0.008521,0.012615,0.011339,0.031418,0.011251,0.012236,0.007753,0.005333,0.00538,0.004477,0.004475,0.004672,0.003352,0.005101,0.004242,0.003374,0.003491,0.003018,0.002802,0.003384,0.003293,0.002969,0.002169,0.001895,0.002432,0.001865,0.005637,0.001656,0.003007,0.001868,0.002772,0.00162,0.002031,0.001286,0.001612,0.002165,0.002123,0.001061,0.001579,0.001631,0.001132,0.003852,0.000765,0.005221,0.000639,0.001,0.001027,0.000893,0.000635,0.001578,0.001578,0.000418,0.000558,0.000553,0.266259,0.077743,0.049944,0.053041,0.033471,0.021022,0.031591,0.015885,0.009057,0.009237,0.009142,0.008183,0.008234,0.015243,0.007404,0.00695,0.007121,0.009025,0.006808,0.006765,0.016109,0.006559,0.006157,0.005835,0.006142,0.006731,0.005348,0.006132,0.003877,0.00495,0.007097,0.003639,0.003674,0.003188,0.003171,0.002977,0.002684,0.002642,0.003109,0.002953,0.002265,0.002582,0.002381,0.002072,0.002057,0.002824,0.002033,0.001757,0.002195,0.001801,0.002342,0.002801,0.001828,0.002038,0.00213,0.002011,0.001564,0.00236,0.001347,0.00119,0.001538,0.001247,0.000862,0.002135,0.000812,0.00185,0.001823,0.002248,0.001534,0.001534,0.000556,0.207108,0.186404,0.082023,0.060757,0.041744,0.032227,0.035224,0.033594,0.023283,0.024803,0.022427,0.020018,0.023579,0.018785,0.026928,0.018291,0.019836,0.014625,0.033897,0.00849,0.007736,0.009907,0.007057,0.01409,0.007243,0.007354,0.006372,0.006289,0.005046,0.004358,0.014562,0.004327,0.004047,0.00602,0.00557,0.005796,0.005386,0.004062,0.005255,0.004358,0.007231,0.006406,0.003823,0.002458,0.004525,0.003164,0.001994,0.01279,0.001796,0.001781,0.003755,0.012703,0.002566,0.002286,0.001687,0.002353,0.001482,0.002011,0.001353,0.001422,0.001332,0.001731,0.002031,0.001429,0.000728,0.002148,0.002919,0.002919,0.000609,0.00139,0.073471,0.069917,0.0671,0.090957,0.045394,0.039312,0.030371,0.028284,0.020894,0.016974,0.015577,0.012901,0.013348,0.011825,0.010907,0.014886,0.008234,0.007145,0.010516,0.018732,0.009409,0.011267,0.006764,0.006606,0.008759,0.008857,0.006344,0.010079,0.011154,0.005835,0.011295,0.005402,0.006289,0.003592,0.006306,0.003704,0.003342,0.002898,0.007751,0.003904,0.005277,0.002779,0.005907,0.002211,0.002788,0.002596,0.009207,0.001813,0.009118,0.002146,0.001982,0.001642,0.001361,0.00123,0.001217,0.001921,0.00212,0.001761,0.001368,0.002791,0.002125,0.00124,0.001006,0.001228,0.000427,0.000581,0.001218,0.001073,0.001073,0.187484,0.029129,0.019212,0.017771,0.016723,0.01484,0.014367,0.013548,0.013234,0.010774,0.010594,0.018485,0.00978,0.009508,0.007579,0.004901,0.004531,0.004949,0.003199,0.00318,0.002925,0.002742,0.003102,0.002852,0.00307,0.00214,0.002057,0.002053,0.001938,0.002046,0.001834,0.001924,0.002346,0.001815,0.001651,0.00162,0.001665,0.001451,0.001285,0.00145,0.001188,0.001124,0.001165,0.000986,0.001032,0.001163,0.000862,0.000737,0.000789,0.000777,0.000669,0.000797,0.000656,0.000662,0.000576,0.000488,0.000345,0.000354,0.000349,0.000343,0.00032,0.000351,0.000361,0.000327,0.000133,0.000173,0.000173,7.5e-05,0.103178,0.085069,0.049635,0.047381,0.024152,0.032186,0.018926,0.0169,0.017239,0.016259,0.01412,0.017633,0.013615,0.012364,0.018061,0.012023,0.007118,0.007125,0.007156,0.005261,0.004848,0.01198,0.004943,0.005322,0.003705,0.003346,0.008939,0.005539,0.004046,0.002968,0.00271,0.003648,0.013378,0.002534,0.002883,0.003358,0.002344,0.002344,0.005124,0.002828,0.003763,0.002152,0.002384,0.002446,0.002204,0.001989,0.001797,0.001063,0.000981,0.00097,0.001403,0.001066,0.001763,0.00156,0.000943,0.001059,0.001321,0.000867,0.001576,0.000658,0.001041,0.00102,0.000324,0.001009,0.000878,0.000878,0.000321,0.151596,0.066477,0.073932,0.047197,0.03401,0.037097,0.03608,0.026674,0.027818,0.023888,0.026501,0.028192,0.040327,0.031086,0.021186,0.030888,0.009085,0.012765,0.008298,0.009029,0.008279,0.015899,0.007546,0.007961,0.006908,0.004949,0.00493,0.005489,0.016246,0.007646,0.004606,0.006571,0.006579,0.006521,0.011302,0.004835,0.009636,0.005796,0.004978,0.004436,0.002749,0.003673,0.005267,0.002337,0.004544,0.014459,0.002074,0.00206,0.003217,0.002718,0.002958,0.00193,0.0017,0.002497,0.001603,0.001675,0.001548,0.002106,0.00246,0.001755,0.000897,0.002679,0.003748,0.003748,0.00073,0.00168,0.155445,0.107378,0.047299,0.019227,0.018236,0.016147,0.016112,0.018453,0.016285,0.012803,0.011273,0.011445,0.010698,0.009547,0.007716,0.011168,0.007272,0.006203,0.008133,0.005861,0.004258,0.004591,0.004339,0.005202,0.004008,0.005437,0.005048,0.002939,0.002731,0.002733,0.002695,0.006542,0.004023,0.002443,0.00294,0.002667,0.003084,0.00256,0.002144,0.00271,0.002613,0.002917,0.001703,0.002046,0.002776,0.004654,0.001506,0.001618,0.001154,0.001368,0.00185,0.001424,0.001185,0.001266,0.001151,0.000677,0.001022,0.001579,0.000499,0.000421,0.001627,0.001627,0.000384,0.001249,0.00036,0.274369,0.048698,0.033406,0.033399,0.024359,0.030174,0.017978,0.018949,0.028955,0.014748,0.011742,0.011092,0.009591,0.006658,0.009771,0.00811,0.010377,0.004861,0.003628,0.00691,0.003948,0.003914,0.006041,0.003013,0.002698,0.002299,0.003124,0.002418,0.002142,0.002141,0.002837,0.002654,0.001928,0.002428,0.009609,0.003536,0.00211,0.001662,0.001815,0.001455,0.001695,0.001714,0.002144,0.001514,0.00088,0.001233,0.000798,0.000788,0.00142,0.001112,0.00078,0.001254,0.000684,0.000521,0.000595,0.000766,0.000811,0.000939,0.001076,0.000266,0.001145,0.000823,0.000823,0.000232,0.297398,0.221807,0.121934,0.128637,0.128258,0.052349,0.018511,0.045282,0.016728,0.016913,0.009627,0.009235,0.00956,0.006082,0.004712,0.005855,0.005246,0.003371,0.044273,0.044273,0.020992,0.003256,0.00333,0.004422,0.008476,0.002786,0.003908,0.005754,0.002657,0.002293,0.005546,0.004326,0.005866,0.002639,0.002191,0.00333,0.00406,0.002012,0.001731,0.001785,0.00229,0.002547,0.001676,0.001783,0.002082,0.002181,0.001612,0.001087,0.001877,0.002399,0.004293,0.001788,0.002009,0.001303,0.00391,0.001872,0.001016,0.001313,0.000774,0.000625,0.000505,0.000661,0.000918,0.208617,0.045892,0.04525,0.010068,0.008572,0.008196,0.012748,0.006567,0.008802,0.006249,0.005204,0.005075,0.004891,0.004468,0.004883,0.004634,0.004106,0.003837,0.0038,0.003679,0.00322,0.003116,0.003041,0.002984,0.002887,0.002767,0.002734,0.002515,0.002478,0.002334,0.002381,0.002058,0.001873,0.001799,0.001799,0.001734,0.00167,0.001448,0.001391,0.001474,0.001296,0.001315,0.001066,0.001015,0.000987,0.000976,0.00088,0.000805,0.000709,0.00066,0.000642,0.000628,0.000595,0.000543,0.000512,0.000474,0.000378,0.000286,0.000243,0.000238,0.000182,9.6e-05,0.11013,0.054647,0.048367,0.05621,0.042446,0.060645,0.052403,0.040667,0.033336,0.031503,0.033253,0.024956,0.022462,0.014365,0.020195,0.01969,0.014327,0.011477,0.007999,0.009614,0.00922,0.007952,0.005882,0.006104,0.005693,0.009001,0.007331,0.005366,0.007206,0.008249,0.004835,0.006839,0.019196,0.004615,0.004745,0.005129,0.003932,0.003967,0.00368,0.00774,0.003582,0.002867,0.003384,0.00275,0.005482,0.003181,0.002934,0.002378,0.001632,0.001931,0.001473,0.001585,0.001481,0.003373,0.001643,0.001486,0.004534,0.000877,0.000825,0.001198,0.001448,0.226908,0.129697,0.127462,0.082669,0.111938,0.037323,0.024703,0.015288,0.01259,0.013855,0.008063,0.010429,0.006853,0.005673,0.007442,0.005423,0.003488,0.045892,0.021913,0.003377,0.009059,0.003278,0.00295,0.004245,0.002636,0.002893,0.005876,0.006173,0.002789,0.002567,0.004685,0.003342,0.002071,0.001909,0.00335,0.002123,0.002515,0.002818,0.002058,0.003136,0.002233,0.001842,0.003269,0.001266,0.002063,0.001659,0.002143,0.00179,0.004281,0.001669,0.002606,0.001858,0.004063,0.000747,0.001035,0.001389,0.000842,0.000549,0.000742,0.000995,0.15906,0.076731,0.066557,0.053167,0.068963,0.046744,0.020686,0.027728,0.01688,0.013258,0.012559,0.010528,0.011307,0.009915,0.009696,0.008641,0.008291,0.008609,0.006696,0.008903,0.006092,0.010959,0.007506,0.005563,0.00501,0.004737,0.004915,0.005473,0.004421,0.005449,0.002987,0.003093,0.004415,0.005744,0.001893,0.002202,0.002149,0.002476,0.002253,0.001802,0.001508,0.001709,0.002966,0.001974,0.001659,0.003511,0.001021,0.002028,0.001238,0.001349,0.001113,0.000772,0.000947,0.000556,0.001274,0.0013,0.000518,0.001454,0.000805,0.073928,0.065774,0.170265,0.045282,0.280253,0.048576,0.050817,0.025356,0.030942,0.023184,0.020617,0.017364,0.013773,0.014364,0.014323,0.017166,0.013575,0.012591,0.012402,0.01135,0.023664,0.010035,0.008068,0.006219,0.006045,0.005801,0.006483,0.005365,0.005411,0.01016,0.006423,0.00501,0.005387,0.006096,0.004556,0.004328,0.006403,0.006451,0.004916,0.003926,0.003802,0.003956,0.005829,0.002577,0.003757,0.003041,0.003426,0.002676,0.005642,0.00298,0.002205,0.002919,0.001673,0.001334,0.001759,0.003239,0.000803,0.001296,0.075975,0.048467,0.050112,0.050158,0.04704,0.033059,0.03399,0.024772,0.029217,0.019702,0.020402,0.019247,0.013473,0.018545,0.020223,0.010583,0.011231,0.020332,0.012535,0.01099,0.010271,0.0174,0.007614,0.010319,0.02135,0.014544,0.014686,0.005861,0.016646,0.012399,0.004596,0.02934,0.008124,0.004747,0.006507,0.007483,0.003867,0.004753,0.004649,0.007803,0.003453,0.002684,0.003313,0.002467,0.001746,0.006574,0.003234,0.004925,0.002938,0.002952,0.001848,0.001729,0.002144,0.000702,0.001033,0.002206,0.001873,0.149868,0.107723,0.086001,0.050887,0.06102,0.055447,0.042631,0.033032,0.03128,0.034999,0.024903,0.03425,0.018902,0.023348,0.022406,0.011954,0.015253,0.014052,0.011012,0.006528,0.006104,0.006476,0.009246,0.005504,0.005639,0.022279,0.008568,0.007332,0.004961,0.004507,0.004681,0.008994,0.00424,0.004344,0.004565,0.003921,0.004118,0.008532,0.002674,0.003417,0.002695,0.003152,0.005028,0.003376,0.003747,0.002518,0.002221,0.002129,0.006137,0.00156,0.002117,0.008862,0.001706,0.001344,0.001632,0.002058,0.130852,0.114293,0.074418,0.070789,0.073349,0.042194,0.036495,0.040262,0.027823,0.022333,0.031994,0.032987,0.017586,0.023032,0.013901,0.019114,0.01292,0.011128,0.009647,0.010289,0.01423,0.008633,0.019376,0.012587,0.027268,0.011448,0.008453,0.006631,0.006889,0.008259,0.005537,0.009797,0.005021,0.005388,0.004182,0.004789,0.005062,0.016932,0.003702,0.006146,0.005779,0.003472,0.003002,0.002269,0.001958,0.002426,0.001945,0.002338,0.002377,0.004189,0.001342,0.001277,0.005233,0.002071,0.002478,0.184119,0.180142,0.053794,0.031066,0.042887,0.036674,0.024381,0.018795,0.02723,0.013265,0.019043,0.013359,0.008175,0.007825,0.007872,0.006757,0.00882,0.00652,0.006332,0.006212,0.005196,0.004014,0.004043,0.00454,0.004209,0.007372,0.004013,0.005206,0.00415,0.003373,0.003407,0.004216,0.002998,0.003915,0.002549,0.002806,0.003065,0.003559,0.004714,0.004681,0.0041,0.003878,0.002393,0.002228,0.002325,0.002035,0.002025,0.001514,0.001772,0.00207,0.001664,0.001002,0.001934,0.001066,0.134408,0.080893,0.043458,0.044568,0.034944,0.031059,0.026822,0.021399,0.023339,0.025115,0.016598,0.012141,0.010055,0.010278,0.00811,0.00724,0.009748,0.00965,0.007607,0.005105,0.006292,0.005786,0.004554,0.004464,0.005684,0.00478,0.004717,0.00518,0.004341,0.004152,0.004746,0.006635,0.002318,0.005191,0.002769,0.002119,0.003734,0.007661,0.003578,0.00194,0.00239,0.001992,0.00176,0.001347,0.001737,0.001482,0.00127,0.001512,0.002102,0.000757,0.001392,0.002381,0.001631,0.052425,0.042795,0.024118,0.021809,0.019505,0.014295,0.014476,0.015792,0.011336,0.010556,0.011043,0.007473,0.007319,0.008943,0.00769,0.005829,0.005677,0.00498,0.004952,0.004816,0.004444,0.005315,0.00337,0.005237,0.003363,0.004943,0.003551,0.004184,0.003531,0.003103,0.002652,0.004698,0.002495,0.002548,0.003478,0.001849,0.001895,0.001473,0.001545,0.001135,0.00175,0.001006,0.000961,0.001065,0.001825,0.001366,0.000975,0.000958,0.001947,0.002734,0.000833,0.000836,0.199255,0.113734,0.059689,0.012667,0.01179,0.011022,0.015866,0.008133,0.009657,0.007406,0.007175,0.007557,0.005341,0.005399,0.005088,0.004952,0.004391,0.003726,0.003555,0.003456,0.005124,0.004353,0.003002,0.002388,0.002283,0.002337,0.001914,0.001887,0.001908,0.001974,0.001847,0.002327,0.002173,0.002472,0.001909,0.001102,0.00133,0.000911,0.000946,0.00097,0.000836,0.000695,0.000934,0.001698,0.000937,0.000584,0.001188,0.00051,0.001904,0.00088,0.00021,0.10531,0.04652,0.038482,0.053279,0.05581,0.052014,0.033313,0.031691,0.089982,0.018562,0.020789,0.018225,0.021661,0.01654,0.024178,0.026932,0.014066,0.015717,0.011873,0.013468,0.011933,0.010001,0.012171,0.008719,0.010506,0.011317,0.010055,0.013105,0.006951,0.005187,0.005177,0.003868,0.007847,0.007132,0.007171,0.013215,0.0075,0.004108,0.006127,0.003375,0.002753,0.001852,0.00182,0.005465,0.002498,0.002267,0.00124,0.005204,0.005292,0.001952,0.057612,0.060325,0.057918,0.053734,0.026398,0.015468,0.015679,0.014103,0.012021,0.013781,0.011201,0.00857,0.008492,0.009182,0.008967,0.00707,0.007362,0.006733,0.005967,0.005978,0.006079,0.004782,0.004485,0.003449,0.003326,0.002982,0.002544,0.002515,0.001975,0.001937,0.002549,0.001941,0.002178,0.001813,0.002114,0.001603,0.002021,0.00207,0.001896,0.001477,0.003131,0.001336,0.001497,0.001169,0.004634,0.001236,0.001479,0.00046,0.001185,0.123635,0.211561,0.12834,0.052354,0.047224,0.01668,0.017195,0.009426,0.009645,0.004788,0.005299,0.00339,0.04525,0.021433,0.00328,0.003352,0.004462,0.008636,0.002808,0.005784,0.00268,0.002313,0.005639,0.004341,0.002666,0.002216,0.004077,0.002027,0.001803,0.001699,0.001803,0.002104,0.002199,0.001627,0.001097,0.00245,0.004357,0.001818,0.002026,0.001326,0.003958,0.001029,0.001334,0.000786,0.000634,0.000514,0.000674,0.000935,0.025793,0.019633,0.014855,0.014409,0.010713,0.010168,0.010424,0.009702,0.008944,0.009142,0.007253,0.00829,0.003606,0.003143,0.003489,0.002868,0.00283,0.004077,0.002707,0.002484,0.002409,0.001942,0.003898,0.002244,0.001923,0.00175,0.001002,0.00138,0.001091,0.0029,0.001161,0.000893,0.000808,0.000659,0.000788,0.000561,0.000613,0.000464,0.000455,0.000481,0.000528,0.000397,0.000218,0.000504,0.000642,0.00015,0.000298,0.390216,0.058116,0.040258,0.015527,0.015668,0.007111,0.004841,0.002489,0.002299,0.006021,0.002039,0.002312,0.001819,0.00188,0.00194,0.001685,0.001653,0.001514,0.001539,0.002046,0.001422,0.001721,0.001342,0.001308,0.006249,0.00139,0.001246,0.001676,0.001178,0.001733,0.001334,0.00119,0.000926,0.004151,0.001275,0.000838,0.000751,0.000623,0.000864,0.000451,0.000379,0.0004,0.000337,0.000439,0.000327,0.000207,0.261064,0.184154,0.070075,0.036782,0.016828,0.015956,0.014722,0.0108,0.009369,0.008778,0.006712,0.006337,0.005333,0.005461,0.007045,0.00484,0.00453,0.004497,0.005785,0.003634,0.003729,0.002988,0.003492,0.003766,0.002643,0.003481,0.002622,0.003628,0.002474,0.00248,0.002535,0.00193,0.003437,0.001713,0.00162,0.002015,0.003173,0.001688,0.001235,0.000942,0.002212,0.002159,0.00322,0.000912,0.001195,0.181729,0.068399,0.050657,0.033127,0.064701,0.015097,0.014798,0.010703,0.013327,0.016062,0.012958,0.011356,0.012228,0.011183,0.007776,0.005237,0.004443,0.004459,0.003259,0.003446,0.006889,0.003973,0.00314,0.003292,0.003281,0.003037,0.002156,0.005516,0.001881,0.005348,0.001625,0.002677,0.001283,0.001743,0.005538,0.002005,0.001728,0.001169,0.005483,0.000654,0.00108,0.004891,0.000436,0.000581,0.019485,0.028235,0.014821,0.012178,0.009887,0.010763,0.007975,0.008078,0.007867,0.0068,0.006389,0.004954,0.006236,0.004851,0.004838,0.004853,0.003855,0.004389,0.003551,0.003236,0.003169,0.002949,0.003153,0.002693,0.002776,0.002287,0.002237,0.001934,0.001971,0.001868,0.001912,0.001453,0.001139,0.000953,0.00086,0.000656,0.000655,0.000985,0.000373,0.000519,0.00036,0.00046,0.000378,0.459242,0.03682,0.03339,0.020704,0.010827,0.010099,0.008382,0.007415,0.006856,0.006507,0.007783,0.005025,0.005331,0.006009,0.00628,0.003929,0.004899,0.003857,0.004661,0.005628,0.00403,0.005846,0.0082,0.003729,0.005227,0.003504,0.003371,0.002342,0.002349,0.002382,0.004309,0.002674,0.002031,0.005533,0.002522,0.008583,0.001538,0.002136,0.002954,0.001301,0.000541,0.000709,0.137485,0.088875,0.029819,0.029738,0.022521,0.026233,0.019603,0.011901,0.009849,0.010238,0.00586,0.004642,0.004451,0.00393,0.00375,0.003351,0.004989,0.003134,0.003334,0.002601,0.002373,0.002916,0.002823,0.001903,0.002662,0.002015,0.001932,0.001979,0.002463,0.001926,0.003614,0.001815,0.004366,0.006417,0.000861,0.001305,0.000893,0.000631,0.000662,0.000798,0.000987,0.06147,0.040934,0.020889,0.018847,0.016016,0.025441,0.020119,0.011676,0.011807,0.008804,0.017417,0.011364,0.01198,0.010562,0.008851,0.023759,0.005099,0.00448,0.00406,0.004045,0.004875,0.004141,0.003109,0.007371,0.002989,0.003163,0.002393,0.002038,0.004094,0.00281,0.00195,0.001856,0.002462,0.003485,0.004631,0.001176,0.006567,0.00104,0.002642,0.000994,0.070601,0.020051,0.017225,0.016969,0.015756,0.014618,0.012098,0.010492,0.01057,0.013673,0.010016,0.005085,0.005677,0.005565,0.007543,0.004965,0.003987,0.00401,0.003852,0.003329,0.002222,0.00211,0.002276,0.002082,0.002124,0.001878,0.001448,0.003142,0.001043,0.00091,0.000908,0.00086,0.000563,0.000539,0.000655,0.000312,0.000595,0.00051,0.000198,0.188798,0.019373,0.017889,0.016855,0.014949,0.013644,0.01086,0.010675,0.009865,0.004951,0.004557,0.005017,0.003222,0.002761,0.003159,0.00207,0.001847,0.002403,0.001837,0.001664,0.001685,0.001466,0.001138,0.001186,0.001044,0.000877,0.000788,0.000813,0.000672,0.000493,0.000349,0.000355,0.000351,0.000375,0.000344,0.000136,0.000182,7.9e-05,0.119648,0.065505,0.061703,0.046343,0.02985,0.014298,0.013725,0.008939,0.012519,0.009889,0.00817,0.006615,0.006209,0.005425,0.004705,0.00822,0.004103,0.00599,0.004095,0.005645,0.00408,0.002926,0.003013,0.00326,0.003745,0.002495,0.005032,0.002492,0.001659,0.001413,0.001556,0.002054,0.001208,0.003347,0.001215,0.003286,0.003041,0.110065,0.117411,0.049936,0.020921,0.022635,0.011279,0.01252,0.01163,0.018007,0.011978,0.011119,0.01084,0.010596,0.009808,0.008705,0.008248,0.006064,0.006876,0.006783,0.005514,0.005106,0.007308,0.005231,0.003586,0.003024,0.003052,0.00255,0.003422,0.002454,0.003395,0.004091,0.002345,0.005115,0.001371,0.005314,0.004468,0.216517,0.092851,0.01169,0.012358,0.017668,0.014399,0.011279,0.006356,0.005746,0.004436,0.003384,0.003325,0.003206,0.002988,0.003731,0.002609,0.002633,0.003424,0.002338,0.002617,0.003152,0.002125,0.002024,0.002301,0.003431,0.001036,0.001178,0.001287,0.000728,0.00089,0.000901,0.000551,0.0009,0.000971,0.000628,0.073663,0.017824,0.016476,0.014981,0.012846,0.009258,0.014957,0.010391,0.007341,0.006821,0.006692,0.006781,0.005916,0.011565,0.005079,0.006305,0.005688,0.003603,0.004051,0.004458,0.00312,0.004069,0.003384,0.002713,0.00188,0.002535,0.001844,0.003282,0.001249,0.001231,0.000653,0.001289,0.001357,0.000976,0.067727,0.089596,0.012091,0.013579,0.00821,0.0103,0.010732,0.011397,0.005993,0.004696,0.004566,0.005054,0.0047,0.00441,0.009704,0.005552,0.004178,0.002672,0.003987,0.002906,0.004729,0.004268,0.003059,0.003082,0.001967,0.00568,0.001174,0.001762,0.001243,0.001174,0.006259,0.004106,0.001461,0.084364,0.028655,0.015807,0.012931,0.00445,0.00423,0.003588,0.003442,0.00485,0.003208,0.004163,0.003154,0.007766,0.002281,0.001967,0.002158,0.001661,0.001865,0.002634,0.001554,0.001173,0.001478,0.001263,0.000863,0.000788,0.000933,0.000724,0.000461,0.001245,0.001465,0.000257,0.00066,0.01419,0.010038,0.010181,0.008129,0.012773,0.007301,0.005424,0.00571,0.005289,0.005466,0.005433,0.004181,0.003826,0.003152,0.002386,0.001981,0.001747,0.002059,0.001803,0.00382,0.001231,0.001048,0.000907,0.000915,0.000677,0.000527,0.000611,0.001164,0.000589,0.001448,0.000512,0.056315,0.04495,0.04732,0.040245,0.03646,0.031305,0.030005,0.029893,0.02126,0.01687,0.013124,0.007436,0.016817,0.006136,0.005023,0.015949,0.006504,0.004932,0.006069,0.004072,0.004332,0.003095,0.00168,0.001423,0.002242,0.003696,0.000708,0.004495,0.002334,0.000671,0.092313,0.084187,0.047468,0.021902,0.010641,0.01071,0.008982,0.008495,0.00652,0.006644,0.009437,0.005123,0.005387,0.019913,0.004614,0.004507,0.00306,0.006528,0.005806,0.002727,0.004136,0.002544,0.001954,0.002363,0.001579,0.004252,0.004932,0.001069,0.002984,0.021266,0.013464,0.009933,0.009088,0.0084,0.009632,0.006239,0.005881,0.004848,0.004008,0.003636,0.003292,0.002079,0.001601,0.001749,0.001301,0.001168,0.000934,0.000746,0.00048,0.00037,0.000249,0.000357,0.000326,0.000121,0.000296,0.000243,8e-05,0.024387,0.015944,0.012075,0.008229,0.006237,0.004634,0.005804,0.00424,0.003492,0.002792,0.002244,0.002087,0.002338,0.001819,0.001692,0.001519,0.001319,0.001677,0.001271,0.001154,0.001139,0.000841,0.002125,0.003679,0.000579,0.000524,0.000315,0.178905,0.137593,0.014597,0.007978,0.009112,0.007097,0.004905,0.003993,0.004008,0.00388,0.003537,0.003429,0.002491,0.002361,0.007489,0.002831,0.010706,0.001717,0.00152,0.001073,0.001253,0.000948,0.000816,0.00069,0.001315,0.0004,0.273675,0.009854,0.01029,0.006324,0.007007,0.004808,0.004006,0.00298,0.003024,0.002996,0.002701,0.002938,0.002341,0.001921,0.003198,0.002507,0.001433,0.001156,0.001587,0.003985,0.001489,0.001019,0.005249,0.000577,0.001799,0.04195,0.034918,0.012675,0.004422,0.003435,0.003512,0.002581,0.002293,0.001964,0.00248,0.001867,0.001785,0.001376,0.005298,0.010068,0.001773,0.001182,0.000875,0.003036,0.001079,0.000748,0.00077,0.000394,0.000705,0.208617,0.008572,0.008196,0.008802,0.005075,0.004883,0.003837,0.0038,0.003116,0.002887,0.002767,0.002515,0.001799,0.001734,0.00167,0.001391,0.001474,0.001015,0.000543,0.000474,0.000286,0.000238,9.6e-05,0.042571,0.037795,0.014874,0.00665,0.004858,0.004089,0.003613,0.004387,0.003443,0.003064,0.00287,0.00271,0.01152,0.003854,0.001883,0.017744,0.001514,0.001778,0.001107,0.000664,0.000541,0.000504,0.010691,0.011248,0.005821,0.005194,0.003159,0.00298,0.002737,0.002391,0.003174,0.002459,0.002141,0.002328,0.002857,0.001979,0.00189,0.002966,0.000923,0.001059,0.000798,0.000782,0.000831,0.044474,0.055512,0.043467,0.036742,0.030606,0.012714,0.010726,0.009916,0.012272,0.008434,0.007482,0.0039,0.003923,0.002262,0.003289,0.002928,0.00153,0.000426,0.001712,0.000313,0.066771,0.064563,0.050977,0.046472,0.034123,0.029975,0.018172,0.010652,0.014714,0.009341,0.005163,0.004851,0.004941,0.003527,0.004221,0.000745,0.001711,0.001159,0.001543,0.032009,0.018328,0.012957,0.009527,0.007422,0.007505,0.007185,0.005998,0.0053,0.005331,0.004581,0.006792,0.005369,0.014285,0.021587,0.002508,0.001364,0.002265,0.170303,0.040303,0.039912,0.033371,0.029375,0.029236,0.028399,0.008697,0.004832,0.009522,0.003548,0.003112,0.00499,0.001932,0.000444,0.002215,0.000475,0.027563,0.025459,0.016627,0.014642,0.013822,0.012269,0.00396,0.006047,0.002223,0.001868,0.001285,0.001806,0.001212,0.00161,0.000198,0.000176,0.044783,0.003536,0.002121,0.004232,0.001224,0.001084,0.00102,0.000959,0.001464,0.000861,0.000632,0.000589,0.000821,0.000269,0.000171,0.002239,0.001891,0.001579,0.001258,0.0012,0.001094,0.000991,0.000812,0.000756,0.000678,0.000527,0.000648,0.000374,0.000699,0.098276,0.012092,0.007521,0.018311,0.00473,0.004092,0.002862,0.002876,0.00262,0.002752,0.002034,0.001545,0.001567,0.013396,0.011917,0.004786,0.004108,0.002015,0.001901,0.001877,0.001636,0.001484,0.001298,0.001203,0.00047,0.071142,0.073027,0.043764,0.033489,0.032857,0.025325,0.011026,0.012995,0.015341,0.012345,0.006811,0.028674,0.025048,0.010356,0.009758,0.008268,0.007033,0.00679,0.005923,0.005007,0.001437,0.116632,0.015808,0.01526,0.013961,0.006492,0.006058,0.003386,0.002161,0.001186,0.224475,0.017496,0.015201,0.007423,0.006371,0.00594,0.004441,0.002425,0.011487,0.007609,0.004964,0.004433,0.004441,0.00305,0.001353,0.214693,0.03303,0.022197,0.023606,0.017371,0.003754,0.033222,0.01842,0.016459,0.018274,0.003006,0.022294,0.019207,0.003988,0.004011,0.0672,0.02866,0.017882,0.015807,0.008686,0.016136],[0.054377,0.032741,0.033051,0.016684,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.111205,0.12376,0.067878,0.036812,0.036105,0.030513,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.167468,0.109288,0.107488,0.06614,0.09779,0.098185,0.060818,0.054664,0.060086,0.045341,0.050591,0.041815,0.03429,0.052239,0.038434,0.010689,0.010369,0.014714,0.011618,0.01169,0.012641,0.012136,0.010465,0.013386,0,0.011407,0.016119,0.00997,0.014622,0,0.010393,0.015196,0.013623,0.015249,0.009323,0,0.012294,0.016298,0.014121,0,0.006002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.067769,0.091905,0.082305,0.047894,0.071663,0.045355,0.038927,0.034972,0.019744,0.024584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.14873,0.130441,0.069485,0.049552,0.047901,0,0,0,0,0,0,0.014795,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.162707,0.050333,0.056467,0.049569,0.021638,0,0,0.020401,0.012867,0,0.010605,0.007934,0,0,0,0,0,0,0,0,0,0,0,0,0.006029,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.095022,0.08154,0.033797,0.029095,0.025376,0.025016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08271,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.06838,0.040836,0.021597,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.099379,0.095479,0.064842,0.073072,0.074803,0.055549,0.037803,0.051152,0.018207,0,0.008532,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.143909,0.036863,0.039281,0.018053,0,0.013564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.586549,0.099551,0.095658,0.082031,0.064205,0.037736,0.039276,0.030228,0.042725,0.017976,0.007538,0,0,0,0.018929,0,0,0,0,0,0,0,0.005798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.11872,0.111634,0.084259,0.065827,0.05662,0.048474,0.018345,0.024358,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.029235,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.120148,0.093883,0.039031,0.036082,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.062146,0.102938,0.069654,0.079618,0.02915,0.039499,0.031623,0.031916,0.027285,0.042256,0.026733,0.022149,0.034648,0.023105,0,0,0,0,0,0,0.008127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.115232,0.056926,0.032192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.066273,0.049647,0.031539,0.02651,0.014216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.953016,0.38896,0.118694,0.089355,0,0.067074,0.020927,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014691,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.105155,0.073189,0.042813,0.04887,0.056494,0.042602,0.039353,0.042715,0.035726,0.027441,0.044617,0.015405,0,0,0,0,0.007879,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.419272,0.197429,0.043037,0.031486,0.053032,0.026103,0.038679,0.014048,0,0.012379,0,0,0.011484,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.061903,0.058528,0.061539,0.049291,0.041028,0.028463,0.022486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.043033,0.034509,0.01801,0.028175,0.021736,0.018243,0.011399,0.019162,0.011829,0.011328,0.011206,0.008468,0.010748,0.006197,0.007482,0.008136,0.007973,0.008792,0.010061,0.006269,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.18727,0.07887,0.076246,0.090781,0.078895,0.040855,0.03277,0.023936,0.036851,0.036011,0.028795,0,0.02327,0.017909,0,0,0.014611,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.100689,0.104147,0.187998,0.06848,0.070022,0.052002,0.057495,0.04585,0.033046,0.03459,0.017026,0.031404,0,0,0,0.017646,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.378833,0.267931,0.050666,0.038669,0.040138,0.036542,0.033187,0.030946,0.051574,0.042353,0.043608,0.035499,0.023378,0,0.016706,0.019367,0,0,0,0.008491,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.056081,0.039048,0.042921,0.041253,0.025685,0.027937,0.017973,0.01297,0.015788,0.007655,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.054293,0.035741,0.035657,0.036949,0.036603,0.038228,0.026587,0.019264,0.007727,0.016653,0,0,0,0,0.004976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.061523,0.048362,0.020318,0.021662,0,0,0,0,0,0.008823,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.045364,0.031656,0.014018,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.253409,0.068127,0.065762,0.023929,0.023299,0.02087,0.017909,0.016451,0.031338,0.02061,0.024729,0.022391,0.020662,0.02372,0,0.028762,0.014654,0.020614,0.01172,0.013281,0.024893,0.006982,0.009466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03447,0.030667,0.027689,0.016036,0.011128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.118002,0.128155,0.084482,0.063926,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.08413,0,0.01429,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.482348,0.159415,0,0,0.020263,0.012014,0,0.01005,0.008581,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.198107,0.068615,0.052868,0,0,0,0.011204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.204304,0.051452,0.037123,0.02222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.161766,0.091743,0,0.015259,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.051567,0.045653,0.007681,0.014751,0,0,0,0.020221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.02028,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03187,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.397061,0.130132,0.068665,0,0,0,0,0,0,0,0.009517,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.277465,0.211277,0.05376,0.044926,0,0,0.018277,0.007591,0.014223,0,0.010001,0.011989,0.014999,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.083176,0.075808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.096267,0.017741,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.052548,0.03252,0,0.013012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0511,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.096533,0.085524,0.071853,0.059314,0.03657,0.023626,0.029394,0.018091,0,0.013541,0,0,0,0.004301,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.112987,0.051773,0.041905,0.052019,0.014817,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.054717,0.049466,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.048041,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.009249,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014691,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.018473,0.016121,0.014725,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.03862,0.031915,0.031281,0.021385,0.014149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.082788,0.078319,0.078914,0.062983,0.040301,0.038015,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0176,0.017189,0.009534,0.006005,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.204435,0.077762,0.070102,0.051675,0.024647,0.015919,0.027265,0,0,0,0,0,0,0,0,0,0,0.026671,0.014015,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.014435,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.109854,0.105346,0.092218,0.045732,0.038175,0.02617,0.010806,0.01893,0,0,0,0.030904,0.012139,0.012045,0.009076,0.010584,0.004765,0.004907,0,0,0,0.069202,0,0,0,0,0,0,0,0,0.332051,0.02359,0.013007,0,0,0,0,0,0,0,0,0,0,0,0,0.384866,0.028033,0.010748,0.027733,0.010179,0,0.029653,0,0,0.012679,0,0,0,0,0,0.154084,0.029976,0.015474,0.010128,0,0]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th>source_id</th>\n <th>source_name</th>\n <th>target_id</th>\n <th>target_name</th>\n <th>proximity</th>\n <th>similarity</th>\n </tr>\n </thead>\n</table>","options":{"pageLength":25,"autoWidth":true,"columnDefs":[{"targets":[0,2],"visible":false},{"className":"dt-right","targets":[4,5]}],"order":[],"orderClasses":false},"callback":null,"filter":"none"},"evals":[]}</script></p>
</div>
<div id="diseases" class="section level2">
<h2>Diseases</h2>
<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">readr::<span class="kw">read_tsv</span>(<span class="st">'data/loci-counts.tsv'</span>) %>%
<span class="st"> </span>dplyr::<span class="kw">left_join</span>(
readr::<span class="kw">read_tsv</span>(<span class="st">'input/doid-categories.tsv'</span>) %>%
<span class="st"> </span>dplyr::<span class="kw">select</span>(doid_code, abbreviation, category)
) %>%
<span class="st"> </span>DT::<span class="kw">datatable</span>(<span class="dt">rownames =</span> F)</code></pre></div>
<pre><code>## Joining by: "doid_code"</code></pre>
<p><div id="htmlwidget-4641" style="width:100%;height:auto;" class="datatables"></div>
<script type="application/json" data-for="htmlwidget-4641">{"x":{"data":[["DOID:5419","DOID:8778","DOID:7148","DOID:3459","DOID:9352","DOID:8577","DOID:10286","DOID:2377","DOID:3393","DOID:9744","DOID:11829","DOID:3312","DOID:9074","DOID:10652","DOID:1040","DOID:10608","DOID:784","DOID:9835","DOID:12306","DOID:2841","DOID:14221","DOID:6713","DOID:12236","DOID:10871","DOID:8893","DOID:9970","DOID:1107","DOID:3310","DOID:10763","DOID:418","DOID:3083","DOID:4007","DOID:5844","DOID:1595","DOID:14330","DOID:4481","DOID:1909","DOID:12361","DOID:1094","DOID:6364","DOID:2513","DOID:7147","DOID:3905","DOID:9296","DOID:4001","DOID:11612","DOID:1749","DOID:10941","DOID:3620","DOID:1067","DOID:4905","DOID:1826","DOID:8567","DOID:1024","DOID:5408","DOID:332","DOID:0050425","DOID:0050741","DOID:5517","DOID:4450","DOID:769","DOID:289","DOID:13378","DOID:11782","DOID:13241","DOID:1686","DOID:2986","DOID:9538","DOID:13922","DOID:8398","DOID:986","DOID:8986","DOID:3963","DOID:3910","DOID:1936","DOID:1459","DOID:14227","DOID:7693","DOID:9206","DOID:11476","DOID:14268","DOID:9008","DOID:12365","DOID:11949","DOID:0050156","DOID:585","DOID:90","DOID:5082","DOID:9952","DOID:2468","DOID:13223","DOID:557","DOID:13189","DOID:12995","DOID:12930","DOID:11714","DOID:0050742","DOID:1883","DOID:3908","DOID:10976","DOID:11119","DOID:3324","DOID:12849","DOID:824","DOID:1312","DOID:706","DOID:13641","DOID:1380","DOID:4989","DOID:4960","DOID:14004","DOID:2043","DOID:684"],["schizophrenia","Crohn's disease","rheumatoid arthritis","breast carcinoma","type 2 diabetes mellitus","ulcerative colitis","prostate carcinoma","multiple sclerosis","coronary artery disease","type 1 diabetes mellitus","degenerative myopia","bipolar disorder","systemic lupus erythematosus","Alzheimer's disease","chronic lymphocytic leukemia","celiac disease","chronic kidney failure","refractive error","vitiligo","asthma","metabolic syndrome X","cerebrovascular disease","primary biliary cirrhosis","age related macular degeneration","psoriasis","obesity","esophageal carcinoma","atopic dermatitis","hypertension","systemic scleroderma","chronic obstructive pulmonary disease","bladder carcinoma","myocardial infarction","endogenous depression","Parkinson's disease","allergic rhinitis","melanoma","Graves' disease","attention deficit hyperactivity disorder","migraine","basal cell carcinoma","ankylosing spondylitis","lung carcinoma","cleft lip","ovarian carcinoma","polycystic ovary syndrome","squamous cell carcinoma","intracranial aneurysm","central nervous system cancer","open-angle glaucoma","pancreatic carcinoma","epilepsy syndrome","Hodgkin's lymphoma","leprosy","Paget's disease of bone","amyotrophic lateral sclerosis","restless legs syndrome","alcohol dependence","stomach carcinoma","renal cell carcinoma","neuroblastoma","endometriosis","Kawasaki disease","astigmatism","Behcet's disease","glaucoma","IgA glomerulonephritis","multiple myeloma","eosinophilic esophagitis","osteoarthritis","alopecia areata","narcolepsy","thyroid carcinoma","lung adenocarcinoma","atherosclerosis","hypothyroidism","azoospermia","abdominal aortic aneurysm","Barrett's esophagus","osteoporosis","sclerosing cholangitis","psoriatic arthritis","malaria","Creutzfeldt-Jakob disease","idiopathic pulmonary fibrosis","nephrolithiasis","degenerative disc disease","liver cirrhosis","acute lymphocytic leukemia","psychotic disorder","uterine fibroid","kidney disease","gout","conduct disorder","dilated cardiomyopathy","gestational diabetes","nicotine dependence","hepatitis C","non-small cell lung carcinoma","membranous glomerulonephritis","Gilles de la Tourette syndrome","mood disorder","autistic disorder","periodontitis","focal segmental glomerulosclerosis","mature B-cell neoplasm","exfoliation syndrome","endometrial cancer","pancreatitis","bone marrow cancer","thoracic aortic aneurysm","hepatitis B","hepatocellular carcinoma"],[108,104,88,80,73,65,60,55,43,41,36,34,33,33,27,26,26,23,23,21,21,20,20,18,18,16,15,14,14,13,13,13,13,13,13,12,12,12,12,12,11,11,11,11,11,11,10,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1],["SCZ","CD","RA","BrC","T2D","UC","PrC","MS","CAD","T1D","Myo","BD","SLE","AD","CLL","Cel","CKD","Ref","Vit","Ast","MSX","CVD","PBC","AMD","Ps","Obs","EsC","Ecz","HTN","SS","COPD","BlC","MI","MDD","PD","Rhi","Mel","GD","ADHD","Mig","BCC","AS","LuC",null,"OvC","PCOS","SCC",null,"CNS",null,"PaC","Epi","HL","Lep",null,"ALS","RLS","Alc","StC","RCC","NB","End","Kaw",null,"Beh",null,"IgA","MM",null,"OA","AR",null,"ThC","LuA",null,"hTh",null,null,null,null,"PSC","PsA",null,"CJD","IPF","KSt","DJD","Cir","ALL","Psy",null,null,"Gou",null,"DMy","GDM","Nic","HCV","NSLC","Mem","Tou",null,"Aut",null,"FSGS","BCN",null,"EnC",null,"BMC","TAA","HBV","HCC"],[null,"Autoimmune","Autoimmune","Solid Cancer",null,"Autoimmune","Solid Cancer","Autoimmune",null,"Autoimmune",null,null,"Autoimmune",null,"Hematologic Cancer","Autoimmune",null,null,"Autoimmune",null,null,null,"Autoimmune",null,"Autoimmune",null,"Solid Cancer",null,null,"Autoimmune",null,"Solid Cancer",null,null,null,null,"Solid Cancer","Autoimmune",null,null,"Solid Cancer","Autoimmune","Solid Cancer",null,"Solid Cancer",null,"Solid Cancer",null,"Solid Cancer",null,"Solid Cancer",null,"Hematologic Cancer",null,null,null,null,null,"Solid Cancer","Solid Cancer","Solid Cancer",null,"Autoimmune",null,"Autoimmune",null,"Autoimmune","Hematologic Cancer",null,null,"Autoimmune",null,"Solid Cancer","Solid Cancer",null,null,null,null,null,null,"Autoimmune","Autoimmune",null,null,null,null,null,null,"Hematologic Cancer",null,null,null,null,null,null,null,null,null,"Solid Cancer",null,null,null,null,null,null,"Hematologic Cancer",null,"Solid Cancer",null,"Hematologic Cancer",null,null,"Solid Cancer"]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th>doid_code</th>\n <th>doid_name</th>\n <th>count</th>\n <th>abbreviation</th>\n <th>category</th>\n </tr>\n </thead>\n</table>","options":{"columnDefs":[{"className":"dt-right","targets":2}],"order":[],"autoWidth":false,"orderClasses":false},"callback":null,"filter":"none"},"evals":[]}</script></p>
</div>
</div>
<script>
// add bootstrap table styles to pandoc tables
$(document).ready(function () {
$('tr.header').parent('thead').parent('table').addClass('table table-condensed');
});
</script>
<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</body>
</html>