docks_theme_api 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.babelrc +4 -0
- data/.editorconfig +8 -0
- data/.eslintrc +115 -0
- data/.gitignore +24 -0
- data/.rubocop.yml +20 -0
- data/.travis.yml +16 -0
- data/Gemfile +4 -0
- data/README.md +5 -0
- data/Rakefile +3 -0
- data/assets/images/icons.svg +63 -0
- data/assets/scripts/coffeescript/pattern_library_helpers.coffee +8 -0
- data/assets/scripts/javascript/pattern_library_helpers.js +11 -0
- data/assets/scripts/pattern_library.js +10380 -0
- data/assets/scripts/pattern_library_demo.js +0 -0
- data/assets/styles/less/pattern-library-helpers.less +103 -0
- data/assets/styles/pattern-library-demo.css +1882 -0
- data/assets/styles/pattern-library.css +1882 -0
- data/assets/styles/sass/pattern-library-helpers.sass +90 -0
- data/assets/styles/scss/pattern-library-helpers.scss +99 -0
- data/assets/styles/stylus/pattern-library-helpers.styl +90 -0
- data/assets/templates/erb/demo.erb +26 -0
- data/assets/templates/erb/layouts/demo.erb +17 -0
- data/assets/templates/erb/layouts/pattern.erb +76 -0
- data/assets/templates/erb/partials/sidebar.erb +124 -0
- data/assets/templates/erb/partials/symbols/class.erb +1 -0
- data/assets/templates/erb/partials/symbols/demo.erb +40 -0
- data/assets/templates/erb/partials/symbols/factory.erb +70 -0
- data/assets/templates/erb/partials/symbols/function.erb +103 -0
- data/assets/templates/erb/partials/symbols/mixin.erb +62 -0
- data/assets/templates/erb/partials/symbols/variable.erb +59 -0
- data/assets/templates/erb/pattern.erb +102 -0
- data/assets/templates/haml/demo.haml +14 -0
- data/assets/templates/haml/layouts/demo.haml +6 -0
- data/assets/templates/haml/layouts/pattern.haml +38 -0
- data/assets/templates/haml/partials/sidebar.haml +68 -0
- data/assets/templates/haml/partials/symbols/class.haml +1 -0
- data/assets/templates/haml/partials/symbols/demo.haml +23 -0
- data/assets/templates/haml/partials/symbols/factory.haml +38 -0
- data/assets/templates/haml/partials/symbols/function.haml +54 -0
- data/assets/templates/haml/partials/symbols/mixin.haml +31 -0
- data/assets/templates/haml/partials/symbols/variable.haml +22 -0
- data/assets/templates/haml/pattern.haml +54 -0
- data/assets/templates/slim/demo.slim +24 -0
- data/assets/templates/slim/layouts/demo.slim +5 -0
- data/assets/templates/slim/layouts/pattern.slim +48 -0
- data/assets/templates/slim/partials/sidebar.slim +112 -0
- data/assets/templates/slim/partials/symbols/class.slim +1 -0
- data/assets/templates/slim/partials/symbols/demo.slim +30 -0
- data/assets/templates/slim/partials/symbols/factory.slim +57 -0
- data/assets/templates/slim/partials/symbols/function.slim +81 -0
- data/assets/templates/slim/partials/symbols/mixin.slim +45 -0
- data/assets/templates/slim/partials/symbols/variable.slim +35 -0
- data/assets/templates/slim/pattern.slim +63 -0
- data/docks_config.rb +32 -0
- data/docks_theme_api.gemspec +37 -0
- data/gulpfile.js +88 -0
- data/karma.conf.js +6 -0
- data/lib/docks_theme_api/components/base_component.rb +99 -0
- data/lib/docks_theme_api/components/code_block_component.rb +10 -0
- data/lib/docks_theme_api/components/popover_component.rb +15 -0
- data/lib/docks_theme_api/components/table_component.rb +34 -0
- data/lib/docks_theme_api/components/tablist_component.rb +11 -0
- data/lib/docks_theme_api/components.rb +21 -0
- data/lib/docks_theme_api/helpers/ui_helper.rb +69 -0
- data/lib/docks_theme_api/theme.rb +21 -0
- data/lib/docks_theme_api.rb +1 -0
- data/package.json +60 -0
- data/source/behaviors/filterable/filterable.coffee +353 -0
- data/source/behaviors/filterable/filterable.js +0 -0
- data/source/behaviors/filterable/filterable.scss +34 -0
- data/source/behaviors/filterable/package.json +3 -0
- data/source/behaviors/index.js +0 -0
- data/source/components/avatar/avatar.erb +20 -0
- data/source/components/avatar/avatar.js +142 -0
- data/source/components/avatar/avatar.scss +200 -0
- data/source/components/avatar/avatar_container.erb +13 -0
- data/source/components/avatar/package.json +3 -0
- data/source/components/avatar/spec/avatar_spec.js +81 -0
- data/source/components/badge/badge.scss +158 -0
- data/source/components/button/button.scss +213 -0
- data/source/components/card/card.scss +32 -0
- data/source/components/code_block/code-block.scss +353 -0
- data/source/components/code_block/code_block.erb +95 -0
- data/source/components/code_block/code_block.js +444 -0
- data/source/components/code_block/package.json +3 -0
- data/source/components/code_block/spec/code_block_spec.js +10 -0
- data/source/components/demo/demo.js +244 -0
- data/source/components/demo/demo.scss +90 -0
- data/source/components/demo/package.json +3 -0
- data/source/components/exploded/exploded.erb +25 -0
- data/source/components/exploded/exploded.js +694 -0
- data/source/components/exploded/exploded.scss +166 -0
- data/source/components/exploded/package.json +3 -0
- data/source/components/field/field.js +24 -0
- data/source/components/field/field.scss +101 -0
- data/source/components/field/package.json +3 -0
- data/source/components/header/header.scss +33 -0
- data/source/components/iframe/iframe.erb +12 -0
- data/source/components/iframe/iframe.js +381 -0
- data/source/components/iframe/package.json +3 -0
- data/source/components/index.js +37 -0
- data/source/components/inline_group/inline-group.scss +14 -0
- data/source/components/internal_link/internal_link.js +49 -0
- data/source/components/internal_link/package.json +3 -0
- data/source/components/list/list.scss +230 -0
- data/source/components/modal/modal.coffee +84 -0
- data/source/components/modal/modal.erb +19 -0
- data/source/components/modal/modal.js +0 -0
- data/source/components/modal/modal.scss +57 -0
- data/source/components/modal/package.json +3 -0
- data/source/components/notice/notice.scss +48 -0
- data/source/components/popover/package.json +3 -0
- data/source/components/popover/popover.coffee +562 -0
- data/source/components/popover/popover.erb +21 -0
- data/source/components/popover/popover.js +0 -0
- data/source/components/popover/popover.scss +139 -0
- data/source/components/range/range.scss +78 -0
- data/source/components/resizable/package.json +3 -0
- data/source/components/resizable/resizable.erb +30 -0
- data/source/components/resizable/resizable.js +250 -0
- data/source/components/resizable/resizable.scss +245 -0
- data/source/components/resizable/size_buttons.js +249 -0
- data/source/components/scroll_container/package.json +3 -0
- data/source/components/scroll_container/scroll-container.scss +4 -0
- data/source/components/scroll_container/scroll_container.js +24 -0
- data/source/components/section/section.scss +99 -0
- data/source/components/select/package.json +3 -0
- data/source/components/select/select.erb +21 -0
- data/source/components/select/select.js +35 -0
- data/source/components/select/select.scss +163 -0
- data/source/components/table/package.json +3 -0
- data/source/components/table/table.erb +16 -0
- data/source/components/table/table.js +351 -0
- data/source/components/table/table.scss +236 -0
- data/source/components/tablist/package.json +3 -0
- data/source/components/tablist/tablist.erb +13 -0
- data/source/components/tablist/tablist.js +246 -0
- data/source/components/tablist/tablist.scss +191 -0
- data/source/components/tablist/tablist_panel.erb +14 -0
- data/source/components/tablist/tablist_tab.erb +20 -0
- data/source/components/toggle/package.json +3 -0
- data/source/components/toggle/toggle.erb +11 -0
- data/source/components/toggle/toggle.js +211 -0
- data/source/components/toggle/toggle_container.erb +30 -0
- data/source/components/vertical_spacer/vertical-spacer.scss +3 -0
- data/source/components/vertical_stack/vertical-stack.scss +19 -0
- data/source/components/xray/package.json +3 -0
- data/source/components/xray/xray.erb +50 -0
- data/source/components/xray/xray.js +123 -0
- data/source/components/xray/xray.scss +79 -0
- data/source/foundation/app/app.js +15 -0
- data/source/foundation/app/package.json +3 -0
- data/source/pattern-library-demo.scss +13 -0
- data/source/pattern-library.scss +13 -0
- data/source/pattern_library.js +8 -0
- data/source/pattern_library_demo.js +8 -0
- data/source/structures/index.js +11 -0
- data/source/structures/sidebar/package.json +3 -0
- data/source/structures/sidebar/sidebar.js +69 -0
- data/source/structures/sidebar/sidebar.scss +79 -0
- data/source/utilities/builder/builder.js +138 -0
- data/source/utilities/builder/package.json +3 -0
- data/source/utilities/client/client.js +7 -0
- data/source/utilities/client/package.json +3 -0
- data/source/utilities/colors/colors.scss +112 -0
- data/source/utilities/defaults/defaults.scss +38 -0
- data/source/utilities/dom_cache/dom_cache.js +24 -0
- data/source/utilities/dom_cache/package.json +3 -0
- data/source/utilities/events/events.js +25 -0
- data/source/utilities/events/package.json +3 -0
- data/source/utilities/font_sizes/font-sizes.scss +85 -0
- data/source/utilities/foundation/a11y.scss +10 -0
- data/source/utilities/foundation/base.scss +29 -0
- data/source/utilities/foundation/icon.scss +114 -0
- data/source/utilities/foundation/layout.scss +67 -0
- data/source/utilities/foundation/page.scss +39 -0
- data/source/utilities/foundation/type.scss +208 -0
- data/source/utilities/functions/functions.scss +127 -0
- data/source/utilities/keycodes/keycodes.js +23 -0
- data/source/utilities/keycodes/package.json +3 -0
- data/source/utilities/markup/markup.js +90 -0
- data/source/utilities/markup/package.json +3 -0
- data/source/utilities/media/media.scss +172 -0
- data/source/utilities/mixins/mixins.scss +89 -0
- data/source/utilities/naming_convention/naming_convention.js +3 -0
- data/source/utilities/naming_convention/package.json +3 -0
- data/source/utilities/numbers/numbers.js +14 -0
- data/source/utilities/numbers/package.json +3 -0
- data/source/utilities/painting/package.json +3 -0
- data/source/utilities/painting/painting.js +7 -0
- data/source/utilities/pattern/package.json +3 -0
- data/source/utilities/pattern/pattern.js +50 -0
- data/source/utilities/query_string/package.json +3 -0
- data/source/utilities/query_string/query_string.js +24 -0
- data/source/utilities/template/package.json +3 -0
- data/source/utilities/template/template.js +10 -0
- data/source/utilities/text_range/package.json +3 -0
- data/source/utilities/text_range/text_range.js +30 -0
- data/source/utilities/ui_events/package.json +3 -0
- data/source/utilities/ui_events/ui_events.js +85 -0
- data/source/utilities/variables/variables.scss +18 -0
- data/source/utilities/z_indexes/z-indexes.scss +88 -0
- data/source/vendor/array_includes.js +28 -0
- data/source/vendor/highlight.js +1142 -0
- data/source/vendor/index.js +1 -0
- data/source/vendor/matrix.js +399 -0
- data/source/vendor/query_string.js +66 -0
- data/spec/assets/.eslintrc +9 -0
- data/spec/assets/spec_fixture.js +33 -0
- data/spec/assets/spec_helper.js +19 -0
- data/spec/lib/components/base_component_spec.rb +156 -0
- data/spec/lib/components_spec.rb +30 -0
- data/spec/lib/helpers/ui_helper_spec.rb +62 -0
- data/spec/lib/theme_spec.rb +25 -0
- data/spec/spec_helper.rb +15 -0
- data/tasks/gulp/.eslintrc +6 -0
- data/tasks/gulp/browser_sync.js +8 -0
- data/tasks/gulp/code_quality/scripts.js +10 -0
- data/tasks/gulp/config/index.js +116 -0
- data/tasks/gulp/minify/scripts.js +13 -0
- data/tasks/gulp/minify/styles.js +13 -0
- data/tasks/gulp/pattern_library/index.js +5 -0
- data/tasks/gulp/pattern_library/scripts.js +10 -0
- data/tasks/gulp/pattern_library/styles.js +10 -0
- data/tasks/gulp/scripts.js +8 -0
- data/tasks/gulp/spec/scripts.js +11 -0
- data/tasks/gulp/styles.js +17 -0
- data/tasks/gulp/utilities/babel/relative_require.js +22 -0
- data/tasks/gulp/utilities/babel/spec_helper.js +20 -0
- data/tasks/gulp/utilities/browserify_bundler.js +22 -0
- data/tasks/gulp/utilities/handle_errors.js +13 -0
- data/tasks/gulp/watch.js +9 -0
- data/tasks/rake/rspec.rake +7 -0
- data/tasks/rake/rubocop.rake +8 -0
- data/tasks/rake/templates.rake +50 -0
- metadata +470 -0
@@ -0,0 +1,1882 @@
|
|
1
|
+
@media screen and (max-width: 24.9375rem) {
|
2
|
+
.media__helpers--hide-before-small {
|
3
|
+
display: none; } }
|
4
|
+
|
5
|
+
@media screen and (min-width: 25.0625rem) {
|
6
|
+
.media__helpers--hide-after-small {
|
7
|
+
display: none; } }
|
8
|
+
|
9
|
+
.media__helpers--show-after-small {
|
10
|
+
display: none; }
|
11
|
+
@media screen and (min-width: 25.0625rem) {
|
12
|
+
.media__helpers--show-after-small {
|
13
|
+
display: block; } }
|
14
|
+
|
15
|
+
@media screen and (max-width: 37.4375rem) {
|
16
|
+
.media__helpers--hide-before-medium {
|
17
|
+
display: none; } }
|
18
|
+
|
19
|
+
@media screen and (min-width: 37.5625rem) {
|
20
|
+
.media__helpers--hide-after-medium {
|
21
|
+
display: none; } }
|
22
|
+
|
23
|
+
.media__helpers--show-after-medium {
|
24
|
+
display: none; }
|
25
|
+
@media screen and (min-width: 37.5625rem) {
|
26
|
+
.media__helpers--show-after-medium {
|
27
|
+
display: block; } }
|
28
|
+
|
29
|
+
@media screen and (max-width: 49.9375rem) {
|
30
|
+
.media__helpers--hide-before-large {
|
31
|
+
display: none; } }
|
32
|
+
|
33
|
+
@media screen and (min-width: 50.0625rem) {
|
34
|
+
.media__helpers--hide-after-large {
|
35
|
+
display: none; } }
|
36
|
+
|
37
|
+
.media__helpers--show-after-large {
|
38
|
+
display: none; }
|
39
|
+
@media screen and (min-width: 50.0625rem) {
|
40
|
+
.media__helpers--show-after-large {
|
41
|
+
display: block; } }
|
42
|
+
|
43
|
+
.helper--visually-hidden {
|
44
|
+
border: 0;
|
45
|
+
clip: rect(0 0 0 0);
|
46
|
+
height: 1px;
|
47
|
+
margin: -1px;
|
48
|
+
overflow: hidden;
|
49
|
+
padding: 0;
|
50
|
+
position: absolute;
|
51
|
+
width: 1px; }
|
52
|
+
|
53
|
+
html {
|
54
|
+
box-sizing: border-box; }
|
55
|
+
|
56
|
+
*,
|
57
|
+
*:before,
|
58
|
+
*:after {
|
59
|
+
box-sizing: inherit; }
|
60
|
+
|
61
|
+
body {
|
62
|
+
margin: 0;
|
63
|
+
padding: 0;
|
64
|
+
background-color: white;
|
65
|
+
min-height: 100vh; }
|
66
|
+
|
67
|
+
table {
|
68
|
+
border-collapse: collapse;
|
69
|
+
border-spacing: 0; }
|
70
|
+
|
71
|
+
.icon {
|
72
|
+
display: inline-block;
|
73
|
+
stroke-width: 2; }
|
74
|
+
|
75
|
+
.icon--medium {
|
76
|
+
height: 1.5rem;
|
77
|
+
width: 1.5rem; }
|
78
|
+
|
79
|
+
.icon--large {
|
80
|
+
height: 1.75rem;
|
81
|
+
width: 1.75rem; }
|
82
|
+
|
83
|
+
.icon--action {
|
84
|
+
height: 1.65rem;
|
85
|
+
width: 1.65rem; }
|
86
|
+
|
87
|
+
.icon--hamburger {
|
88
|
+
height: 1.65rem;
|
89
|
+
width: 2rem;
|
90
|
+
position: relative;
|
91
|
+
cursor: pointer;
|
92
|
+
opacity: 0.6;
|
93
|
+
top: 0.2em;
|
94
|
+
-webkit-transition: opacity 0.2s ease;
|
95
|
+
transition: opacity 0.2s ease; }
|
96
|
+
.icon--hamburger:hover {
|
97
|
+
opacity: 1; }
|
98
|
+
.icon--hamburger:before,
|
99
|
+
.icon--hamburger:after {
|
100
|
+
content: "";
|
101
|
+
display: block;
|
102
|
+
position: absolute;
|
103
|
+
height: 4px;
|
104
|
+
width: 100%;
|
105
|
+
border-radius: 2px;
|
106
|
+
background: #6e6f7a; }
|
107
|
+
.icon--hamburger:before {
|
108
|
+
top: 0; }
|
109
|
+
.icon--hamburger:after {
|
110
|
+
bottom: 0; }
|
111
|
+
|
112
|
+
.icon--hamburger__slice {
|
113
|
+
height: 4px;
|
114
|
+
width: 100%;
|
115
|
+
border-radius: 2px;
|
116
|
+
background: #6e6f7a;
|
117
|
+
position: absolute;
|
118
|
+
top: 50%;
|
119
|
+
left: 0;
|
120
|
+
margin-top: -2px; }
|
121
|
+
|
122
|
+
.icon--gray-darker {
|
123
|
+
fill: #9c9da5;
|
124
|
+
stroke: #9c9da5; }
|
125
|
+
|
126
|
+
.icon--close {
|
127
|
+
position: relative;
|
128
|
+
opacity: 0.6;
|
129
|
+
-webkit-transition: opacity 0.2s ease;
|
130
|
+
transition: opacity 0.2s ease;
|
131
|
+
cursor: pointer; }
|
132
|
+
.icon--close:hover {
|
133
|
+
opacity: 1; }
|
134
|
+
.icon--close:before,
|
135
|
+
.icon--close:after {
|
136
|
+
content: "";
|
137
|
+
display: block;
|
138
|
+
position: absolute;
|
139
|
+
height: 4px;
|
140
|
+
width: 140%;
|
141
|
+
border-radius: 2px;
|
142
|
+
background: #6e6f7a;
|
143
|
+
top: 50%;
|
144
|
+
left: 50%;
|
145
|
+
margin-left: -70%;
|
146
|
+
margin-top: -2px; }
|
147
|
+
.icon--close:before {
|
148
|
+
-webkit-transform: rotate(45deg);
|
149
|
+
transform: rotate(45deg); }
|
150
|
+
.icon--close:after {
|
151
|
+
-webkit-transform: rotate(-45deg);
|
152
|
+
transform: rotate(-45deg); }
|
153
|
+
|
154
|
+
.icon--disclosure {
|
155
|
+
height: 0.5rem;
|
156
|
+
width: 0.5rem;
|
157
|
+
-webkit-transform: rotate(45deg) translateY(-50%);
|
158
|
+
transform: rotate(45deg) translateY(-50%);
|
159
|
+
border-right: 2px solid #6e6f7a;
|
160
|
+
border-bottom: 2px solid #6e6f7a;
|
161
|
+
margin-left: 0.25rem; }
|
162
|
+
|
163
|
+
.grid {
|
164
|
+
display: -webkit-box;
|
165
|
+
display: -webkit-flex;
|
166
|
+
display: -ms-flexbox;
|
167
|
+
display: flex; }
|
168
|
+
|
169
|
+
.grid--vertically-centered {
|
170
|
+
-webkit-box-align: center;
|
171
|
+
-webkit-align-items: center;
|
172
|
+
-ms-flex-align: center;
|
173
|
+
align-items: center; }
|
174
|
+
|
175
|
+
.grid--align-right {
|
176
|
+
-webkit-box-pack: end;
|
177
|
+
-webkit-justify-content: flex-end;
|
178
|
+
-ms-flex-pack: end;
|
179
|
+
justify-content: flex-end; }
|
180
|
+
|
181
|
+
.grid--outside-spacing {
|
182
|
+
margin: 1rem 0;
|
183
|
+
padding: 0 1rem; }
|
184
|
+
|
185
|
+
.grid--space-between {
|
186
|
+
-webkit-box-pack: justify;
|
187
|
+
-webkit-justify-content: space-between;
|
188
|
+
-ms-flex-pack: justify;
|
189
|
+
justify-content: space-between; }
|
190
|
+
.grid--space-between > .grid__item {
|
191
|
+
-webkit-box-flex: 0;
|
192
|
+
-webkit-flex: 0 1 auto;
|
193
|
+
-ms-flex: 0 1 auto;
|
194
|
+
flex: 0 1 auto; }
|
195
|
+
|
196
|
+
.grid__item {
|
197
|
+
padding: 0 0.5rem;
|
198
|
+
-webkit-box-flex: 1;
|
199
|
+
-webkit-flex: 1 1 0%;
|
200
|
+
-ms-flex: 1 1 0%;
|
201
|
+
flex: 1 1 0%;
|
202
|
+
display: -webkit-box;
|
203
|
+
display: -webkit-flex;
|
204
|
+
display: -ms-flexbox;
|
205
|
+
display: flex;
|
206
|
+
-webkit-box-align: center;
|
207
|
+
-webkit-align-items: center;
|
208
|
+
-ms-flex-align: center;
|
209
|
+
align-items: center; }
|
210
|
+
.grid__item:first-child {
|
211
|
+
padding-left: 0; }
|
212
|
+
.grid__item:last-child {
|
213
|
+
padding-right: 0; }
|
214
|
+
|
215
|
+
.grid__item--no-flex {
|
216
|
+
-webkit-box-flex: 0;
|
217
|
+
-webkit-flex: 0 0 auto;
|
218
|
+
-ms-flex: 0 0 auto;
|
219
|
+
flex: 0 0 auto; }
|
220
|
+
|
221
|
+
.grid__item--half {
|
222
|
+
-webkit-box-flex: 0;
|
223
|
+
-webkit-flex: 0 0 50%;
|
224
|
+
-ms-flex: 0 0 50%;
|
225
|
+
flex: 0 0 50%; }
|
226
|
+
|
227
|
+
.content {
|
228
|
+
padding: 0 1rem;
|
229
|
+
margin: 1rem 0; }
|
230
|
+
|
231
|
+
.content--extra-vertical-spacing {
|
232
|
+
margin: 3rem 0; }
|
233
|
+
|
234
|
+
body {
|
235
|
+
background-color: #e3e4e6; }
|
236
|
+
|
237
|
+
.page {
|
238
|
+
height: 100vh;
|
239
|
+
max-height: 100vh;
|
240
|
+
display: -webkit-box;
|
241
|
+
display: -webkit-flex;
|
242
|
+
display: -ms-flexbox;
|
243
|
+
display: flex; }
|
244
|
+
|
245
|
+
.page__content,
|
246
|
+
.page__sidebar {
|
247
|
+
position: relative; }
|
248
|
+
|
249
|
+
.page__content {
|
250
|
+
width: 100%;
|
251
|
+
max-width: 100%;
|
252
|
+
display: -webkit-box;
|
253
|
+
display: -webkit-flex;
|
254
|
+
display: -ms-flexbox;
|
255
|
+
display: flex;
|
256
|
+
-webkit-box-flex: 1;
|
257
|
+
-webkit-flex: 1 1 0px;
|
258
|
+
-ms-flex: 1 1 0px;
|
259
|
+
flex: 1 1 0px;
|
260
|
+
z-index: 10;
|
261
|
+
background: white; }
|
262
|
+
.page__content > * {
|
263
|
+
-webkit-box-flex: 0;
|
264
|
+
-webkit-flex: 0 0 100%;
|
265
|
+
-ms-flex: 0 0 100%;
|
266
|
+
flex: 0 0 100%; }
|
267
|
+
|
268
|
+
.page__sidebar {
|
269
|
+
z-index: 20;
|
270
|
+
-webkit-box-flex: 0;
|
271
|
+
-webkit-flex: 0 0 auto;
|
272
|
+
-ms-flex: 0 0 auto;
|
273
|
+
flex: 0 0 auto; }
|
274
|
+
|
275
|
+
body {
|
276
|
+
-webkit-text-size-adjust: 100%;
|
277
|
+
-ms-text-size-adjust: 100%;
|
278
|
+
text-size-adjust: 100%;
|
279
|
+
color: #33363a;
|
280
|
+
font-family: Source Sans Pro, Helvetica Neue, Helvetica, Arial, sans-serif; }
|
281
|
+
|
282
|
+
button,
|
283
|
+
input {
|
284
|
+
font-family: Source Sans Pro, Helvetica Neue, Helvetica, Arial, sans-serif; }
|
285
|
+
|
286
|
+
h1, h2, h3, h4, h5, h6, p, .type {
|
287
|
+
margin: 0;
|
288
|
+
font-size: inherit; }
|
289
|
+
|
290
|
+
.type--heading-1 {
|
291
|
+
font-weight: 400;
|
292
|
+
line-height: 1;
|
293
|
+
color: #6e6f7a;
|
294
|
+
font-size: 2.25rem; }
|
295
|
+
|
296
|
+
.type--heading-2 {
|
297
|
+
font-weight: 400;
|
298
|
+
color: #6e6f7a;
|
299
|
+
font-size: 1.875rem; }
|
300
|
+
|
301
|
+
.type--heading-3 {
|
302
|
+
font-weight: 400;
|
303
|
+
line-height: 1;
|
304
|
+
color: #6e6f7a;
|
305
|
+
font-size: 1.5rem; }
|
306
|
+
|
307
|
+
.type--heading-4 {
|
308
|
+
margin: 1rem auto 0.5rem;
|
309
|
+
font-weight: 600;
|
310
|
+
text-transform: uppercase;
|
311
|
+
color: #d1d3d7;
|
312
|
+
font-size: 0.875rem; }
|
313
|
+
|
314
|
+
.type--heading-5 {
|
315
|
+
margin: 1rem auto 0.5rem;
|
316
|
+
font-weight: 400;
|
317
|
+
color: #6e6f7a;
|
318
|
+
font-size: 1.25rem; }
|
319
|
+
.type--heading-4 + .type--heading-5 {
|
320
|
+
margin-top: 0.5rem; }
|
321
|
+
.type--paragraph + .type--heading-5,
|
322
|
+
.user-type + .type--heading-5 {
|
323
|
+
margin-top: 1.5rem; }
|
324
|
+
|
325
|
+
.type--heading-bordered {
|
326
|
+
padding-bottom: 1rem;
|
327
|
+
margin-bottom: 1.3rem;
|
328
|
+
border-bottom: 2px solid #e3e4e6; }
|
329
|
+
.type--heading-bordered + .section {
|
330
|
+
margin-top: -1rem; }
|
331
|
+
|
332
|
+
.type--paragraph {
|
333
|
+
font-size: 1.25rem;
|
334
|
+
line-height: 1.3;
|
335
|
+
font-weight: 300;
|
336
|
+
color: #1e1e1f; }
|
337
|
+
.type--paragraph + p {
|
338
|
+
margin-top: 0.75rem; }
|
339
|
+
.type--paragraph > a {
|
340
|
+
display: inline-block;
|
341
|
+
text-decoration: none;
|
342
|
+
color: #627990;
|
343
|
+
font-weight: normal; }
|
344
|
+
.type--paragraph > a > span {
|
345
|
+
border-bottom: 2px solid #8cc2fb; }
|
346
|
+
.type--paragraph > a > code {
|
347
|
+
color: #627990;
|
348
|
+
background-color: #e6ecf4;
|
349
|
+
border-color: rgba(98, 121, 144, 0.15); }
|
350
|
+
.type--paragraph code {
|
351
|
+
font-family: Consolas, monospace;
|
352
|
+
display: inline-block;
|
353
|
+
padding: 0.05em 0.25em;
|
354
|
+
font-size: 0.8em;
|
355
|
+
background-color: #f2f2f3;
|
356
|
+
color: #6e6f7a;
|
357
|
+
border: 1px solid #e3e4e6;
|
358
|
+
border-radius: 4px; }
|
359
|
+
|
360
|
+
.type--paragraph-small {
|
361
|
+
font-size: 1.125rem; }
|
362
|
+
|
363
|
+
.type-container h1 {
|
364
|
+
font-weight: 400;
|
365
|
+
line-height: 1;
|
366
|
+
color: #6e6f7a;
|
367
|
+
font-size: 2.25rem; }
|
368
|
+
|
369
|
+
.type-container h2 {
|
370
|
+
font-weight: 400;
|
371
|
+
color: #6e6f7a;
|
372
|
+
font-size: 1.875rem; }
|
373
|
+
|
374
|
+
.type-container h3 {
|
375
|
+
font-weight: 400;
|
376
|
+
line-height: 1;
|
377
|
+
color: #6e6f7a;
|
378
|
+
font-size: 1.5rem; }
|
379
|
+
|
380
|
+
.type-container h4 {
|
381
|
+
margin: 1rem auto 0.5rem;
|
382
|
+
font-weight: 600;
|
383
|
+
text-transform: uppercase;
|
384
|
+
color: #d1d3d7;
|
385
|
+
font-size: 0.875rem; }
|
386
|
+
|
387
|
+
.type-container h5 {
|
388
|
+
margin: 1rem auto 0.5rem;
|
389
|
+
font-weight: 400;
|
390
|
+
color: #6e6f7a;
|
391
|
+
font-size: 1.25rem; }
|
392
|
+
|
393
|
+
.type-container p {
|
394
|
+
font-size: 1.25rem;
|
395
|
+
line-height: 1.3;
|
396
|
+
font-weight: 300;
|
397
|
+
color: #1e1e1f; }
|
398
|
+
.type-container p + p {
|
399
|
+
margin-top: 0.75rem; }
|
400
|
+
.type-container p > a {
|
401
|
+
display: inline-block;
|
402
|
+
text-decoration: none;
|
403
|
+
color: #627990;
|
404
|
+
font-weight: normal; }
|
405
|
+
.type-container p > a > span {
|
406
|
+
border-bottom: 2px solid #8cc2fb; }
|
407
|
+
.type-container p > a > code {
|
408
|
+
color: #627990;
|
409
|
+
background-color: #e6ecf4;
|
410
|
+
border-color: rgba(98, 121, 144, 0.15); }
|
411
|
+
.type-container p code {
|
412
|
+
font-family: Consolas, monospace;
|
413
|
+
display: inline-block;
|
414
|
+
padding: 0.05em 0.25em;
|
415
|
+
font-size: 0.8em;
|
416
|
+
background-color: #f2f2f3;
|
417
|
+
color: #6e6f7a;
|
418
|
+
border: 1px solid #e3e4e6;
|
419
|
+
border-radius: 4px; }
|
420
|
+
|
421
|
+
.type-container--small p {
|
422
|
+
font-size: 1.125rem; }
|
423
|
+
|
424
|
+
.type--display {
|
425
|
+
font-size: 1.3rem;
|
426
|
+
margin-top: 0;
|
427
|
+
font-weight: 500;
|
428
|
+
line-height: 1; }
|
429
|
+
|
430
|
+
.type--margin-bottom {
|
431
|
+
margin-bottom: 1rem; }
|
432
|
+
|
433
|
+
.type--subdued {
|
434
|
+
color: #d1d3d7; }
|
435
|
+
|
436
|
+
.type--code {
|
437
|
+
font-family: Consolas, monospace;
|
438
|
+
font-size: 0.95em;
|
439
|
+
word-wrap: break-word; }
|
440
|
+
|
441
|
+
::-moz-selection {
|
442
|
+
background: #b7d6f6; }
|
443
|
+
|
444
|
+
::selection {
|
445
|
+
background: #b7d6f6; }
|
446
|
+
|
447
|
+
.avatar {
|
448
|
+
z-index: 10;
|
449
|
+
position: relative;
|
450
|
+
-webkit-box-flex: 0;
|
451
|
+
-webkit-flex: 0 0 auto;
|
452
|
+
-ms-flex: 0 0 auto;
|
453
|
+
flex: 0 0 auto;
|
454
|
+
display: inline-block;
|
455
|
+
background-color: #f1f1f1;
|
456
|
+
border-radius: 4px;
|
457
|
+
overflow: hidden;
|
458
|
+
font-size: 1.25rem; }
|
459
|
+
|
460
|
+
.avatar__initials {
|
461
|
+
z-index: 10;
|
462
|
+
position: absolute;
|
463
|
+
top: 50%;
|
464
|
+
left: 0;
|
465
|
+
width: 100%;
|
466
|
+
-webkit-transform: translateY(-50%);
|
467
|
+
transform: translateY(-50%);
|
468
|
+
color: #cfcfcf;
|
469
|
+
font-size: 1em;
|
470
|
+
line-height: 1;
|
471
|
+
text-align: center;
|
472
|
+
text-transform: uppercase; }
|
473
|
+
|
474
|
+
.avatar__image {
|
475
|
+
z-index: 20;
|
476
|
+
position: relative;
|
477
|
+
height: 3rem;
|
478
|
+
width: 3rem;
|
479
|
+
opacity: 0;
|
480
|
+
-webkit-transition: opacity 0.3s ease;
|
481
|
+
transition: opacity 0.3s ease;
|
482
|
+
background-size: cover;
|
483
|
+
background-position: center center;
|
484
|
+
background-repeat: no-repeat;
|
485
|
+
overflow: hidden; }
|
486
|
+
|
487
|
+
.avatar__image--is-visible {
|
488
|
+
opacity: 1; }
|
489
|
+
|
490
|
+
.avatar__container {
|
491
|
+
display: -webkit-inline-box;
|
492
|
+
display: -webkit-inline-flex;
|
493
|
+
display: -ms-inline-flexbox;
|
494
|
+
display: inline-flex;
|
495
|
+
-webkit-flex-wrap: wrap;
|
496
|
+
-ms-flex-wrap: wrap;
|
497
|
+
flex-wrap: wrap;
|
498
|
+
overflow: hidden;
|
499
|
+
margin-right: -0.5rem !important;
|
500
|
+
margin-bottom: -0.5rem !important;
|
501
|
+
max-width: 10.5rem; }
|
502
|
+
.avatar__container > .avatar {
|
503
|
+
margin-right: 0.5rem;
|
504
|
+
margin-bottom: 0.5rem; }
|
505
|
+
|
506
|
+
.avatar__container--large {
|
507
|
+
max-width: 14rem; }
|
508
|
+
|
509
|
+
.badge {
|
510
|
+
position: relative;
|
511
|
+
-webkit-box-flex: 0;
|
512
|
+
-webkit-flex: 0 0 auto;
|
513
|
+
-ms-flex: 0 0 auto;
|
514
|
+
flex: 0 0 auto;
|
515
|
+
display: inline-block;
|
516
|
+
padding: 0.15em 0.5em 0.25em;
|
517
|
+
border-radius: 4px;
|
518
|
+
background-color: #f2f2f3;
|
519
|
+
font-size: 0.75em;
|
520
|
+
line-height: 1.3;
|
521
|
+
vertical-align: middle;
|
522
|
+
color: #9c9da5; }
|
523
|
+
|
524
|
+
.badge--warning {
|
525
|
+
background-color: #fdf7af;
|
526
|
+
color: #857e32; }
|
527
|
+
|
528
|
+
.badge--new {
|
529
|
+
background-color: #b7d6f6;
|
530
|
+
color: #627990; }
|
531
|
+
|
532
|
+
.badge--secret {
|
533
|
+
background-color: #6e6f7a;
|
534
|
+
color: #e3e4e6; }
|
535
|
+
|
536
|
+
.badge--code {
|
537
|
+
padding-bottom: 0;
|
538
|
+
padding-top: 0.2em; }
|
539
|
+
|
540
|
+
.badge--standalone {
|
541
|
+
font-size: 1rem; }
|
542
|
+
|
543
|
+
.badge__container {
|
544
|
+
display: -webkit-inline-box;
|
545
|
+
display: -webkit-inline-flex;
|
546
|
+
display: -ms-inline-flexbox;
|
547
|
+
display: inline-flex;
|
548
|
+
-webkit-flex-wrap: wrap;
|
549
|
+
-ms-flex-wrap: wrap;
|
550
|
+
flex-wrap: wrap;
|
551
|
+
overflow: hidden;
|
552
|
+
margin-right: -0.5rem !important;
|
553
|
+
margin-bottom: -0.5rem !important; }
|
554
|
+
.badge__container > .badge {
|
555
|
+
margin-right: 0.5rem;
|
556
|
+
margin-bottom: 0.5rem; }
|
557
|
+
|
558
|
+
.docks-button {
|
559
|
+
display: -webkit-inline-box;
|
560
|
+
display: -webkit-inline-flex;
|
561
|
+
display: -ms-inline-flexbox;
|
562
|
+
display: inline-flex;
|
563
|
+
-webkit-box-align: center;
|
564
|
+
-webkit-align-items: center;
|
565
|
+
-ms-flex-align: center;
|
566
|
+
align-items: center;
|
567
|
+
-webkit-box-pack: center;
|
568
|
+
-webkit-justify-content: center;
|
569
|
+
-ms-flex-pack: center;
|
570
|
+
justify-content: center;
|
571
|
+
padding: 0 0.75rem;
|
572
|
+
border-radius: 4px;
|
573
|
+
background-color: #f2f2f3;
|
574
|
+
border: none;
|
575
|
+
cursor: pointer;
|
576
|
+
opacity: 1;
|
577
|
+
-webkit-transition: opacity 0.3s ease;
|
578
|
+
transition: opacity 0.3s ease;
|
579
|
+
font-size: 1.125rem;
|
580
|
+
line-height: 2.125rem;
|
581
|
+
color: #9c9da5;
|
582
|
+
vertical-align: middle;
|
583
|
+
text-decoration: none;
|
584
|
+
white-space: nowrap; }
|
585
|
+
.docks-button:focus,
|
586
|
+
.docks-button:active {
|
587
|
+
background-color: #e3e4e6;
|
588
|
+
outline: none; }
|
589
|
+
.docks-button > *:first-child {
|
590
|
+
margin-right: 0.5rem; }
|
591
|
+
|
592
|
+
.docks-button--dark {
|
593
|
+
background-color: #d1d3d7;
|
594
|
+
color: #6e6f7a; }
|
595
|
+
.docks-button--dark:focus,
|
596
|
+
.docks-button--dark:active {
|
597
|
+
background-color: #d1d3d7;
|
598
|
+
color: #6e6f7a; }
|
599
|
+
|
600
|
+
.docks-button--is-disabled {
|
601
|
+
opacity: 0.3; }
|
602
|
+
|
603
|
+
.docks-button__container {
|
604
|
+
display: -webkit-inline-box;
|
605
|
+
display: -webkit-inline-flex;
|
606
|
+
display: -ms-inline-flexbox;
|
607
|
+
display: inline-flex;
|
608
|
+
-webkit-flex-wrap: wrap;
|
609
|
+
-ms-flex-wrap: wrap;
|
610
|
+
flex-wrap: wrap;
|
611
|
+
margin-right: -0.5rem !important;
|
612
|
+
margin-bottom: -0.5rem !important; }
|
613
|
+
.docks-button__container:after {
|
614
|
+
content: "";
|
615
|
+
display: table; }
|
616
|
+
.docks-button__container > * {
|
617
|
+
-webkit-box-flex: 0;
|
618
|
+
-webkit-flex: 0 0 auto;
|
619
|
+
-ms-flex: 0 0 auto;
|
620
|
+
flex: 0 0 auto;
|
621
|
+
margin-right: 0.5rem;
|
622
|
+
margin-bottom: 0.5rem; }
|
623
|
+
|
624
|
+
.docks-button__container--fill-width {
|
625
|
+
display: -webkit-box;
|
626
|
+
display: -webkit-flex;
|
627
|
+
display: -ms-flexbox;
|
628
|
+
display: flex;
|
629
|
+
-webkit-flex-wrap: wrap;
|
630
|
+
-ms-flex-wrap: wrap;
|
631
|
+
flex-wrap: wrap;
|
632
|
+
-webkit-box-align: start;
|
633
|
+
-webkit-align-items: flex-start;
|
634
|
+
-ms-flex-align: start;
|
635
|
+
align-items: flex-start; }
|
636
|
+
.docks-button__container--fill-width .docks-button,
|
637
|
+
.docks-button__container--fill-width > *:not(.docks-button) {
|
638
|
+
display: -webkit-box;
|
639
|
+
display: -webkit-flex;
|
640
|
+
display: -ms-flexbox;
|
641
|
+
display: flex;
|
642
|
+
-webkit-box-flex: 1;
|
643
|
+
-webkit-flex: 1 0 0%;
|
644
|
+
-ms-flex: 1 0 0%;
|
645
|
+
flex: 1 0 0%;
|
646
|
+
min-width: -webkit-min-content;
|
647
|
+
min-width: -moz-min-content;
|
648
|
+
min-width: min-content; }
|
649
|
+
|
650
|
+
.docks-button__segmented-container {
|
651
|
+
display: -webkit-inline-box;
|
652
|
+
display: -webkit-inline-flex;
|
653
|
+
display: -ms-inline-flexbox;
|
654
|
+
display: inline-flex; }
|
655
|
+
.docks-button__segmented-container > .docks-button {
|
656
|
+
border-radius: 0; }
|
657
|
+
.docks-button__segmented-container > .docks-button:not(:first-child) {
|
658
|
+
border-left: none; }
|
659
|
+
.docks-button__segmented-container > .docks-button:first-child {
|
660
|
+
border-radius: 4px 0 0 4px; }
|
661
|
+
.docks-button__segmented-container > .docks-button:last-child {
|
662
|
+
border-radius: 0 4px 4px 0; }
|
663
|
+
|
664
|
+
.card {
|
665
|
+
background-color: white;
|
666
|
+
border-radius: 4px;
|
667
|
+
overflow: hidden; }
|
668
|
+
|
669
|
+
.code-block {
|
670
|
+
margin: 1rem 0;
|
671
|
+
overflow: hidden;
|
672
|
+
background: #f2f2f3;
|
673
|
+
border-radius: 4px; }
|
674
|
+
.code-block .docks-button {
|
675
|
+
display: none; }
|
676
|
+
|
677
|
+
.code-block--condensed {
|
678
|
+
margin-top: 0.5rem; }
|
679
|
+
.code-block--condensed .code-block__code {
|
680
|
+
padding-bottom: 0.5rem;
|
681
|
+
font-size: 0.875rem; }
|
682
|
+
.code-block--condensed:not(.code-block--with-header) .code-block__code {
|
683
|
+
padding-top: 0.5rem; }
|
684
|
+
|
685
|
+
.code-block--full-width {
|
686
|
+
margin-right: 0;
|
687
|
+
margin-left: 0;
|
688
|
+
border-radius: 0; }
|
689
|
+
.content .code-block--full-width {
|
690
|
+
margin-left: -1rem;
|
691
|
+
margin-right: -1rem; }
|
692
|
+
|
693
|
+
.code-block--is-hidden:not(.code-block--with-demo) .code-block__toggler {
|
694
|
+
background-color: #f2f2f3; }
|
695
|
+
|
696
|
+
.code-block--is-hidden .code-block__content {
|
697
|
+
height: 0; }
|
698
|
+
|
699
|
+
.code-block__actions {
|
700
|
+
display: -webkit-box;
|
701
|
+
display: -webkit-flex;
|
702
|
+
display: -ms-flexbox;
|
703
|
+
display: flex;
|
704
|
+
-webkit-box-align: center;
|
705
|
+
-webkit-align-items: center;
|
706
|
+
-ms-flex-align: center;
|
707
|
+
align-items: center; }
|
708
|
+
|
709
|
+
.code-block__header {
|
710
|
+
display: -webkit-box;
|
711
|
+
display: -webkit-flex;
|
712
|
+
display: -ms-flexbox;
|
713
|
+
display: flex;
|
714
|
+
-webkit-box-pack: justify;
|
715
|
+
-webkit-justify-content: space-between;
|
716
|
+
-ms-flex-pack: justify;
|
717
|
+
justify-content: space-between;
|
718
|
+
-webkit-box-align: center;
|
719
|
+
-webkit-align-items: center;
|
720
|
+
-ms-flex-align: center;
|
721
|
+
align-items: center;
|
722
|
+
padding: 0.5rem 1rem;
|
723
|
+
-webkit-box-flex: 0 !important;
|
724
|
+
-webkit-flex: 0 0 auto !important;
|
725
|
+
-ms-flex: 0 0 auto !important;
|
726
|
+
flex: 0 0 auto !important;
|
727
|
+
background: #f2f2f3; }
|
728
|
+
.code-block__header .select,
|
729
|
+
.code-block__header .tablist {
|
730
|
+
-webkit-transition: -webkit-transform 0.2s ease;
|
731
|
+
transition: transform 0.2s ease; }
|
732
|
+
.code-block__header .tablist {
|
733
|
+
padding: 0; }
|
734
|
+
|
735
|
+
.code-block__code-container {
|
736
|
+
overflow: auto;
|
737
|
+
max-height: 100%; }
|
738
|
+
|
739
|
+
.code-block__toggler {
|
740
|
+
background-color: #e3e4e6;
|
741
|
+
width: 100%;
|
742
|
+
border: none;
|
743
|
+
display: -webkit-box;
|
744
|
+
display: -webkit-flex;
|
745
|
+
display: -ms-flexbox;
|
746
|
+
display: flex;
|
747
|
+
-webkit-box-align: center;
|
748
|
+
-webkit-align-items: center;
|
749
|
+
-ms-flex-align: center;
|
750
|
+
align-items: center;
|
751
|
+
-webkit-box-pack: center;
|
752
|
+
-webkit-justify-content: center;
|
753
|
+
-ms-flex-pack: center;
|
754
|
+
justify-content: center;
|
755
|
+
font-size: 1.125rem;
|
756
|
+
padding: 0.5rem 0;
|
757
|
+
color: #9c9da5;
|
758
|
+
-webkit-transition: background-color 0.2s ease;
|
759
|
+
transition: background-color 0.2s ease; }
|
760
|
+
.code-block__toggler:focus,
|
761
|
+
.code-block__toggler:active {
|
762
|
+
background-color: #e3e4e6;
|
763
|
+
outline: none; }
|
764
|
+
.code-block__toggler > .icon {
|
765
|
+
margin-right: 0.5rem;
|
766
|
+
opacity: 0.5; }
|
767
|
+
|
768
|
+
.code-block__content {
|
769
|
+
overflow: hidden;
|
770
|
+
-webkit-transition: height 0.3s ease;
|
771
|
+
transition: height 0.3s ease;
|
772
|
+
max-height: 15rem; }
|
773
|
+
|
774
|
+
.code-block__code {
|
775
|
+
margin: 0;
|
776
|
+
display: inline-block;
|
777
|
+
padding: 0.5rem 1rem 1rem;
|
778
|
+
font-size: 1rem;
|
779
|
+
line-height: 1.3; }
|
780
|
+
.code-block__code:focus {
|
781
|
+
outline: none; }
|
782
|
+
.code-block:not(.code-block--with-header):not(.code-block--condensed):not(.code-block--with-demo) .code-block__code {
|
783
|
+
padding-top: 1rem; }
|
784
|
+
.code-block--with-demo:not(.code-block--with-header) .code-block__code {
|
785
|
+
padding-top: 0; }
|
786
|
+
.code-block__code > code {
|
787
|
+
font-family: Consolas, monospace;
|
788
|
+
padding: 0;
|
789
|
+
background-color: transparent;
|
790
|
+
font-size: inherit !important;
|
791
|
+
border: none; }
|
792
|
+
|
793
|
+
.hljs-value,
|
794
|
+
.hljs-string,
|
795
|
+
.hljs-preprocessor {
|
796
|
+
color: #4196df; }
|
797
|
+
|
798
|
+
.hljs-symbol {
|
799
|
+
color: #1a5cab; }
|
800
|
+
|
801
|
+
.hljs-at_rule,
|
802
|
+
.hljs-attribute,
|
803
|
+
.hljs-keyword {
|
804
|
+
color: #4a4a4a; }
|
805
|
+
|
806
|
+
.hljs-comment {
|
807
|
+
color: rgba(177, 177, 177, 0.5);
|
808
|
+
font-style: italic; }
|
809
|
+
|
810
|
+
.hljs-tag,
|
811
|
+
.hljs-variable {
|
812
|
+
color: #b1b1b1; }
|
813
|
+
|
814
|
+
.code-block--with-demo .code-block__content {
|
815
|
+
padding-top: 0; }
|
816
|
+
.code-block--with-demo .code-block__content > .code-block__header {
|
817
|
+
padding-top: 0; }
|
818
|
+
|
819
|
+
.code-block__demo {
|
820
|
+
padding: 1rem; }
|
821
|
+
|
822
|
+
.code-block__demo__content {
|
823
|
+
display: none; }
|
824
|
+
|
825
|
+
.code-block__iframe {
|
826
|
+
height: 10em;
|
827
|
+
background-color: white;
|
828
|
+
border: none;
|
829
|
+
width: 100%;
|
830
|
+
margin: 0;
|
831
|
+
border-radius: 4px; }
|
832
|
+
|
833
|
+
.demo {
|
834
|
+
background-color: white;
|
835
|
+
min-height: 10rem; }
|
836
|
+
|
837
|
+
.demo__section {
|
838
|
+
position: relative;
|
839
|
+
box-sizing: border-box;
|
840
|
+
overflow: hidden;
|
841
|
+
background-color: white; }
|
842
|
+
.demo__section ~ .demo__section {
|
843
|
+
border-top: 1px solid #f1f1f1; }
|
844
|
+
|
845
|
+
.demo__header {
|
846
|
+
box-sizing: border-box;
|
847
|
+
margin-right: -0.5rem;
|
848
|
+
padding: 0.5rem 1rem 0;
|
849
|
+
text-align: right; }
|
850
|
+
|
851
|
+
.exploded--is-being-initialized .exploded__pane {
|
852
|
+
-webkit-transition: -webkit-transform 0.25s ease;
|
853
|
+
transition: transform 0.25s ease; }
|
854
|
+
|
855
|
+
.exploded__source,
|
856
|
+
.exploded__structure {
|
857
|
+
padding: 1rem 2rem; }
|
858
|
+
|
859
|
+
.exploded__structure {
|
860
|
+
position: relative;
|
861
|
+
-webkit-perspective: 2000px;
|
862
|
+
perspective: 2000px;
|
863
|
+
-webkit-transform-style: preserve-3d;
|
864
|
+
transform-style: preserve-3d;
|
865
|
+
cursor: pointer; }
|
866
|
+
|
867
|
+
.exploded__structure__content {
|
868
|
+
position: relative;
|
869
|
+
z-index: 0;
|
870
|
+
margin: 0 auto; }
|
871
|
+
|
872
|
+
.exploded__control-container {
|
873
|
+
display: -webkit-box;
|
874
|
+
display: -webkit-flex;
|
875
|
+
display: -ms-flexbox;
|
876
|
+
display: flex;
|
877
|
+
-webkit-box-align: end;
|
878
|
+
-webkit-align-items: flex-end;
|
879
|
+
-ms-flex-align: end;
|
880
|
+
align-items: flex-end;
|
881
|
+
margin: 3rem -1rem 0; }
|
882
|
+
|
883
|
+
.exploded__control {
|
884
|
+
-webkit-box-flex: 1;
|
885
|
+
-webkit-flex: 1 1 0;
|
886
|
+
-ms-flex: 1 1 0;
|
887
|
+
flex: 1 1 0;
|
888
|
+
margin-left: 1rem; }
|
889
|
+
.exploded__control:first-child {
|
890
|
+
margin-left: 0; }
|
891
|
+
|
892
|
+
.exploded__pane {
|
893
|
+
position: absolute;
|
894
|
+
box-sizing: content-box;
|
895
|
+
border-radius: 4px;
|
896
|
+
background-color: rgba(156, 157, 165, 0.6);
|
897
|
+
border: 1px solid rgba(227, 228, 230, 0.5);
|
898
|
+
-webkit-transition: background 0.3s ease;
|
899
|
+
transition: background 0.3s ease; }
|
900
|
+
.exploded__pane:hover {
|
901
|
+
background-color: #b7d6f6; }
|
902
|
+
|
903
|
+
.exploded__pane--is-selected, .exploded__pane--is-selected:hover {
|
904
|
+
background: #8cc2fb;
|
905
|
+
opacity: 1; }
|
906
|
+
|
907
|
+
.field {
|
908
|
+
border-radius: 4px;
|
909
|
+
background-color: #d1d3d7;
|
910
|
+
display: -webkit-box;
|
911
|
+
display: -webkit-flex;
|
912
|
+
display: -ms-flexbox;
|
913
|
+
display: flex;
|
914
|
+
-webkit-box-align: center;
|
915
|
+
-webkit-align-items: center;
|
916
|
+
-ms-flex-align: center;
|
917
|
+
align-items: center;
|
918
|
+
max-width: 100%;
|
919
|
+
padding: 0 0.5rem; }
|
920
|
+
|
921
|
+
.field--switch {
|
922
|
+
padding: 0;
|
923
|
+
background-color: transparent;
|
924
|
+
position: relative; }
|
925
|
+
.field--switch > .label {
|
926
|
+
margin: 0;
|
927
|
+
padding-left: 2.25rem;
|
928
|
+
position: relative;
|
929
|
+
line-height: 1.5rem;
|
930
|
+
color: #6e6f7a; }
|
931
|
+
.field--switch > .label:after {
|
932
|
+
content: '';
|
933
|
+
display: block;
|
934
|
+
height: 1.05rem;
|
935
|
+
width: 0.45rem;
|
936
|
+
position: absolute;
|
937
|
+
top: 0.75rem;
|
938
|
+
left: 0.75rem;
|
939
|
+
border-bottom: 2px solid #627990;
|
940
|
+
border-right: 2px solid #627990;
|
941
|
+
-webkit-transform: translate(-50%, -60%) rotate(45deg);
|
942
|
+
transform: translate(-50%, -60%) rotate(45deg);
|
943
|
+
display: none; }
|
944
|
+
.field--switch > .label:before {
|
945
|
+
content: '';
|
946
|
+
display: block;
|
947
|
+
height: 1.5rem;
|
948
|
+
width: 1.5rem;
|
949
|
+
background: #e3e4e6;
|
950
|
+
position: absolute;
|
951
|
+
top: 0;
|
952
|
+
left: 0;
|
953
|
+
border-radius: 4px; }
|
954
|
+
.field--switch > .field__switch:checked + .label:before {
|
955
|
+
background: #b7d6f6; }
|
956
|
+
.field--switch > .field__switch:checked + .label:after {
|
957
|
+
display: block; }
|
958
|
+
.field--switch > .field__switch {
|
959
|
+
position: absolute;
|
960
|
+
top: 0;
|
961
|
+
left: 0;
|
962
|
+
opacity: 0.1; }
|
963
|
+
.field--switch + .field--switch {
|
964
|
+
margin-top: 1rem; }
|
965
|
+
|
966
|
+
.field__icon {
|
967
|
+
-webkit-box-flex: 0;
|
968
|
+
-webkit-flex: 0 0 auto;
|
969
|
+
-ms-flex: 0 0 auto;
|
970
|
+
flex: 0 0 auto;
|
971
|
+
font-size: 0; }
|
972
|
+
.field__icon > .icon {
|
973
|
+
fill: #9c9da5;
|
974
|
+
stroke: #9c9da5; }
|
975
|
+
|
976
|
+
.field__input {
|
977
|
+
-webkit-box-flex: 1;
|
978
|
+
-webkit-flex: 1 1 auto;
|
979
|
+
-ms-flex: 1 1 auto;
|
980
|
+
flex: 1 1 auto;
|
981
|
+
margin: 0;
|
982
|
+
padding: 0;
|
983
|
+
background: transparent;
|
984
|
+
border: none;
|
985
|
+
line-height: 2.125rem;
|
986
|
+
font-size: 1.1rem;
|
987
|
+
font-family: Source Sans Pro, Helvetica Neue, Helvetica, Arial, sans-serif; }
|
988
|
+
.field__input::-webkit-input-placeholder {
|
989
|
+
color: rgba(156, 157, 165, 0.5); }
|
990
|
+
.field__input::-moz-placeholder {
|
991
|
+
color: rgba(156, 157, 165, 0.5); }
|
992
|
+
.field__input:-ms-input-placeholder {
|
993
|
+
color: rgba(156, 157, 165, 0.5); }
|
994
|
+
.field__input::placeholder {
|
995
|
+
color: rgba(156, 157, 165, 0.5); }
|
996
|
+
.field__input:focus {
|
997
|
+
outline: none; }
|
998
|
+
|
999
|
+
.page-header {
|
1000
|
+
background-color: #e3e4e6;
|
1001
|
+
padding: 1rem;
|
1002
|
+
padding-bottom: 1rem;
|
1003
|
+
min-height: 4.125rem; }
|
1004
|
+
.page-header .type--heading-1 {
|
1005
|
+
margin: -0.5em 0; }
|
1006
|
+
|
1007
|
+
.inline-group {
|
1008
|
+
display: -webkit-inline-box;
|
1009
|
+
display: -webkit-inline-flex;
|
1010
|
+
display: -ms-inline-flexbox;
|
1011
|
+
display: inline-flex;
|
1012
|
+
-webkit-flex-wrap: wrap;
|
1013
|
+
-ms-flex-wrap: wrap;
|
1014
|
+
flex-wrap: wrap;
|
1015
|
+
-webkit-box-align: center;
|
1016
|
+
-webkit-align-items: center;
|
1017
|
+
-ms-flex-align: center;
|
1018
|
+
align-items: center;
|
1019
|
+
margin-right: -0.5rem;
|
1020
|
+
margin-bottom: -0.5rem; }
|
1021
|
+
|
1022
|
+
.inline-group__item {
|
1023
|
+
margin-right: 0.5rem;
|
1024
|
+
margin-bottom: 0.5rem; }
|
1025
|
+
|
1026
|
+
.list {
|
1027
|
+
padding: 0;
|
1028
|
+
margin: 1rem 0 2rem;
|
1029
|
+
list-style: none; }
|
1030
|
+
.list .type--heading {
|
1031
|
+
padding-left: 1rem;
|
1032
|
+
padding-right: 1rem; }
|
1033
|
+
.popover .list {
|
1034
|
+
margin-bottom: 1rem; }
|
1035
|
+
|
1036
|
+
.list__item {
|
1037
|
+
display: block;
|
1038
|
+
padding: 0.25rem 1rem;
|
1039
|
+
cursor: pointer;
|
1040
|
+
text-decoration: none;
|
1041
|
+
color: #6e6f7a;
|
1042
|
+
white-space: nowrap;
|
1043
|
+
text-overflow: ellipsis;
|
1044
|
+
overflow: hidden; }
|
1045
|
+
.list__item:hover,
|
1046
|
+
.list__item:focus {
|
1047
|
+
outline: none;
|
1048
|
+
background: #f2f2f3; }
|
1049
|
+
.list__item:active {
|
1050
|
+
background-color: #b7d6f6;
|
1051
|
+
color: #627990; }
|
1052
|
+
|
1053
|
+
.list__item--is-active,
|
1054
|
+
.list__item--is-active:hover,
|
1055
|
+
.list__item--is-active:focus {
|
1056
|
+
background-color: #b7d6f6;
|
1057
|
+
color: #627990; }
|
1058
|
+
|
1059
|
+
.list__item--indented {
|
1060
|
+
padding-left: calc(1rem + 2ch);
|
1061
|
+
position: relative; }
|
1062
|
+
.list__item--indented:before {
|
1063
|
+
content: "";
|
1064
|
+
display: block;
|
1065
|
+
position: absolute;
|
1066
|
+
left: calc(1rem + 1ch);
|
1067
|
+
top: 0;
|
1068
|
+
height: 100%;
|
1069
|
+
width: 2px;
|
1070
|
+
background: rgba(30, 30, 31, 0.07); }
|
1071
|
+
.list__item--indented:last-child:before {
|
1072
|
+
height: 85%; }
|
1073
|
+
.list__item:not(.list__item--indented) + .list__item--indented:before {
|
1074
|
+
top: 15%;
|
1075
|
+
height: 85%; }
|
1076
|
+
|
1077
|
+
.link-list {
|
1078
|
+
padding: 0;
|
1079
|
+
margin: 0;
|
1080
|
+
list-style: none;
|
1081
|
+
display: -webkit-box;
|
1082
|
+
display: -webkit-flex;
|
1083
|
+
display: -ms-flexbox;
|
1084
|
+
display: flex;
|
1085
|
+
-webkit-flex-wrap: wrap;
|
1086
|
+
-ms-flex-wrap: wrap;
|
1087
|
+
flex-wrap: wrap; }
|
1088
|
+
.link-list > li {
|
1089
|
+
position: relative;
|
1090
|
+
-webkit-box-flex: 0;
|
1091
|
+
-webkit-flex: 0 0 auto;
|
1092
|
+
-ms-flex: 0 0 auto;
|
1093
|
+
flex: 0 0 auto; }
|
1094
|
+
.link-list > li:after {
|
1095
|
+
content: "";
|
1096
|
+
position: absolute;
|
1097
|
+
top: 10%;
|
1098
|
+
right: -1px;
|
1099
|
+
-webkit-transform: rotate(15deg);
|
1100
|
+
transform: rotate(15deg);
|
1101
|
+
display: block;
|
1102
|
+
height: 80%;
|
1103
|
+
border-right: 2px solid rgba(110, 111, 122, 0.1); }
|
1104
|
+
.link-list > li:last-child:after {
|
1105
|
+
display: none;
|
1106
|
+
margin-right: 0; }
|
1107
|
+
|
1108
|
+
.link-list__item {
|
1109
|
+
position: relative;
|
1110
|
+
display: block;
|
1111
|
+
cursor: pointer;
|
1112
|
+
padding: 0.25rem 0.5rem;
|
1113
|
+
-webkit-appearance: none;
|
1114
|
+
-moz-appearance: none;
|
1115
|
+
background: none;
|
1116
|
+
border: none;
|
1117
|
+
opacity: 0.6;
|
1118
|
+
font-size: 1em;
|
1119
|
+
line-height: 1;
|
1120
|
+
color: #9c9da5;
|
1121
|
+
-webkit-transition: opacity 0.25s ease;
|
1122
|
+
transition: opacity 0.25s ease; }
|
1123
|
+
.link-list__item:hover,
|
1124
|
+
.link-list__item:focus {
|
1125
|
+
opacity: 1;
|
1126
|
+
outline: none; }
|
1127
|
+
|
1128
|
+
.unstyled-list {
|
1129
|
+
margin: 0;
|
1130
|
+
padding: 0;
|
1131
|
+
list-style: none; }
|
1132
|
+
.unstyled-list > li {
|
1133
|
+
margin: 2rem 0; }
|
1134
|
+
.unstyled-list > li:first-child {
|
1135
|
+
margin-top: 0; }
|
1136
|
+
|
1137
|
+
.details-sheet {
|
1138
|
+
max-width: 90%;
|
1139
|
+
position: fixed;
|
1140
|
+
top: 50%;
|
1141
|
+
left: 50%;
|
1142
|
+
-webkit-transform: translate(-50%, -50%);
|
1143
|
+
transform: translate(-50%, -50%);
|
1144
|
+
background-color: white;
|
1145
|
+
border-radius: 0.4rem;
|
1146
|
+
box-shadow: 0 0 10px rgba(30, 30, 31, 0.3);
|
1147
|
+
z-index: 20;
|
1148
|
+
display: none; }
|
1149
|
+
|
1150
|
+
.details-sheet--is-active {
|
1151
|
+
display: block; }
|
1152
|
+
|
1153
|
+
.details-sheet__overlay {
|
1154
|
+
background: rgba(30, 30, 31, 0.9);
|
1155
|
+
position: absolute;
|
1156
|
+
top: 0;
|
1157
|
+
bottom: 0;
|
1158
|
+
right: 0;
|
1159
|
+
left: 0;
|
1160
|
+
z-index: 19;
|
1161
|
+
display: none; }
|
1162
|
+
|
1163
|
+
.details-sheet__overlay--is-active {
|
1164
|
+
display: block; }
|
1165
|
+
|
1166
|
+
.details-sheet__section {
|
1167
|
+
padding: 1rem; }
|
1168
|
+
.details-sheet__section + .details-sheet__section {
|
1169
|
+
border-top: 1px solid; }
|
1170
|
+
|
1171
|
+
.details-sheet__name {
|
1172
|
+
display: inline-block;
|
1173
|
+
padding: 0.1rem 0.25em;
|
1174
|
+
border-radius: 0.25em;
|
1175
|
+
color: #37393c;
|
1176
|
+
font-size: 1.2em;
|
1177
|
+
font-family: Consolas, monospace;
|
1178
|
+
margin: 0; }
|
1179
|
+
|
1180
|
+
.details-sheet__subtitle {
|
1181
|
+
margin: 0 0 0.5rem;
|
1182
|
+
font-size: 0.6rem;
|
1183
|
+
text-transform: uppercase;
|
1184
|
+
color: #37393c;
|
1185
|
+
opacity: 0.3;
|
1186
|
+
font-weight: 600; }
|
1187
|
+
|
1188
|
+
.notice {
|
1189
|
+
background-color: #fdf7af;
|
1190
|
+
width: -webkit-fit-content;
|
1191
|
+
width: -moz-fit-content;
|
1192
|
+
width: fit-content;
|
1193
|
+
color: #857e32;
|
1194
|
+
padding: 1rem;
|
1195
|
+
border-radius: 4px;
|
1196
|
+
font-size: 1.125rem;
|
1197
|
+
position: relative; }
|
1198
|
+
.notice .type, .notice p, .notice code {
|
1199
|
+
color: inherit;
|
1200
|
+
font-size: inherit; }
|
1201
|
+
.notice .type--heading {
|
1202
|
+
font-weight: 400; }
|
1203
|
+
|
1204
|
+
.notice--new {
|
1205
|
+
background-color: #b7d6f6;
|
1206
|
+
color: #627990; }
|
1207
|
+
|
1208
|
+
/*============================================================================
|
1209
|
+
Next Popover
|
1210
|
+
==============================================================================*/
|
1211
|
+
.popover__container {
|
1212
|
+
position: relative;
|
1213
|
+
display: -webkit-inline-box;
|
1214
|
+
display: -webkit-inline-flex;
|
1215
|
+
display: -ms-inline-flexbox;
|
1216
|
+
display: inline-flex;
|
1217
|
+
z-index: 20; }
|
1218
|
+
.popover__container > *:focus {
|
1219
|
+
outline: 0; }
|
1220
|
+
|
1221
|
+
.popover__container--contains-active-popover {
|
1222
|
+
z-index: 40; }
|
1223
|
+
|
1224
|
+
.popover__container--is-deactivating {
|
1225
|
+
z-index: 30; }
|
1226
|
+
|
1227
|
+
.popover__container--full-width {
|
1228
|
+
display: -webkit-box;
|
1229
|
+
display: -webkit-flex;
|
1230
|
+
display: -ms-flexbox;
|
1231
|
+
display: flex; }
|
1232
|
+
|
1233
|
+
.popover {
|
1234
|
+
position: absolute;
|
1235
|
+
left: 0;
|
1236
|
+
top: 100%;
|
1237
|
+
-webkit-transform: scale(0);
|
1238
|
+
transform: scale(0);
|
1239
|
+
display: inline-block;
|
1240
|
+
max-width: 100%;
|
1241
|
+
margin: 0.8125rem 1rem;
|
1242
|
+
background-color: white;
|
1243
|
+
border-radius: 4px;
|
1244
|
+
opacity: 0;
|
1245
|
+
box-shadow: 0 0 0 1px rgba(51, 54, 58, 0.05), 0 2px 7px 1px rgba(51, 54, 58, 0.16);
|
1246
|
+
-webkit-transition: -webkit-transform 0.35s cubic-bezier(0.27, 1.41, 0.53, 0.97), opacity 0.2s ease;
|
1247
|
+
transition: transform 0.35s cubic-bezier(0.27, 1.41, 0.53, 0.97), opacity 0.2s ease; }
|
1248
|
+
|
1249
|
+
.popover--is-active {
|
1250
|
+
-webkit-transform: scale(1);
|
1251
|
+
transform: scale(1);
|
1252
|
+
opacity: 1; }
|
1253
|
+
|
1254
|
+
.popover--is-positioned-above {
|
1255
|
+
top: auto;
|
1256
|
+
bottom: 100%; }
|
1257
|
+
.popover--is-positioned-above .popover__tooltip {
|
1258
|
+
top: 100%; }
|
1259
|
+
.popover--is-positioned-above .popover__tooltip:after {
|
1260
|
+
top: -0.3125rem; }
|
1261
|
+
|
1262
|
+
.popover__tooltip {
|
1263
|
+
position: absolute;
|
1264
|
+
left: 50%;
|
1265
|
+
top: -1.25rem;
|
1266
|
+
width: 1.25rem;
|
1267
|
+
height: 1.25rem;
|
1268
|
+
margin-left: -0.625rem;
|
1269
|
+
overflow: hidden; }
|
1270
|
+
.popover__tooltip:after {
|
1271
|
+
content: "";
|
1272
|
+
position: absolute;
|
1273
|
+
top: 0.9375rem;
|
1274
|
+
left: 50%;
|
1275
|
+
-webkit-transform: rotate(45deg);
|
1276
|
+
transform: rotate(45deg);
|
1277
|
+
margin-left: -0.3125rem;
|
1278
|
+
display: block;
|
1279
|
+
height: 0.625rem;
|
1280
|
+
width: 0.625rem;
|
1281
|
+
background-color: white;
|
1282
|
+
box-shadow: 0 0 0 1px rgba(51, 54, 58, 0.05), 0 2px 7px 1px rgba(51, 54, 58, 0.16); }
|
1283
|
+
|
1284
|
+
.popover__content-wrapper {
|
1285
|
+
display: -webkit-box;
|
1286
|
+
display: -webkit-flex;
|
1287
|
+
display: -ms-flexbox;
|
1288
|
+
display: flex;
|
1289
|
+
max-width: 25rem;
|
1290
|
+
max-height: 50rem;
|
1291
|
+
border-radius: 4px;
|
1292
|
+
overflow: hidden; }
|
1293
|
+
|
1294
|
+
.popover__content {
|
1295
|
+
-webkit-box-flex: 0;
|
1296
|
+
-webkit-flex: 0 0 auto;
|
1297
|
+
-ms-flex: 0 0 auto;
|
1298
|
+
flex: 0 0 auto;
|
1299
|
+
display: -webkit-inline-box;
|
1300
|
+
display: -webkit-inline-flex;
|
1301
|
+
display: -ms-inline-flexbox;
|
1302
|
+
display: inline-flex;
|
1303
|
+
-webkit-box-orient: vertical;
|
1304
|
+
-webkit-box-direction: normal;
|
1305
|
+
-webkit-flex-direction: column;
|
1306
|
+
-ms-flex-direction: column;
|
1307
|
+
flex-direction: column;
|
1308
|
+
max-height: 100%;
|
1309
|
+
min-width: 9.375rem; }
|
1310
|
+
.popover__content > *:first-child {
|
1311
|
+
margin-top: 0; }
|
1312
|
+
.popover__content > *:last-child {
|
1313
|
+
margin-bottom: 0; }
|
1314
|
+
|
1315
|
+
.popover__pane {
|
1316
|
+
-webkit-box-flex: 0;
|
1317
|
+
-webkit-flex: 0 1 auto;
|
1318
|
+
-ms-flex: 0 1 auto;
|
1319
|
+
flex: 0 1 auto;
|
1320
|
+
overflow: auto;
|
1321
|
+
-webkit-overflow-scrolling: touch;
|
1322
|
+
max-width: 100%; }
|
1323
|
+
|
1324
|
+
.range {
|
1325
|
+
width: 100%;
|
1326
|
+
margin: 0;
|
1327
|
+
-webkit-appearance: none;
|
1328
|
+
-moz-appearance: none;
|
1329
|
+
appearance: none;
|
1330
|
+
background-color: transparent; }
|
1331
|
+
.range:focus {
|
1332
|
+
outline: none; }
|
1333
|
+
|
1334
|
+
.range::-webkit-slider-runnable-track {
|
1335
|
+
width: 100%;
|
1336
|
+
height: 2.625rem;
|
1337
|
+
cursor: pointer;
|
1338
|
+
background-color: #d1d3d7;
|
1339
|
+
border-radius: 1.3125rem;
|
1340
|
+
padding: 0.2625rem; }
|
1341
|
+
|
1342
|
+
.range:focus::-webkit-slider-runnable-track {
|
1343
|
+
outline: none; }
|
1344
|
+
|
1345
|
+
.range::-moz-range-track {
|
1346
|
+
width: 100%;
|
1347
|
+
height: 2.625rem;
|
1348
|
+
cursor: pointer;
|
1349
|
+
background-color: #d1d3d7;
|
1350
|
+
border-radius: 1.3125rem;
|
1351
|
+
padding: 0.2625rem; }
|
1352
|
+
|
1353
|
+
.range::-ms-track {
|
1354
|
+
width: 100%;
|
1355
|
+
height: 2.625rem;
|
1356
|
+
cursor: pointer;
|
1357
|
+
background-color: #d1d3d7;
|
1358
|
+
border-radius: 1.3125rem;
|
1359
|
+
padding: 0.2625rem; }
|
1360
|
+
|
1361
|
+
.range::-webkit-slider-thumb {
|
1362
|
+
height: 2.1rem;
|
1363
|
+
width: 2.1rem;
|
1364
|
+
box-shadow: 1px 1px 3px rgba(30, 30, 31, 0.15);
|
1365
|
+
border-radius: 1.05rem;
|
1366
|
+
background: #f2f2f3;
|
1367
|
+
cursor: pointer;
|
1368
|
+
-webkit-appearance: none;
|
1369
|
+
appearance: none; }
|
1370
|
+
|
1371
|
+
.range::-moz-range-thumb {
|
1372
|
+
height: 2.1rem;
|
1373
|
+
width: 2.1rem;
|
1374
|
+
box-shadow: 1px 1px 3px rgba(30, 30, 31, 0.15);
|
1375
|
+
border-radius: 1.05rem;
|
1376
|
+
background: #f2f2f3;
|
1377
|
+
cursor: pointer;
|
1378
|
+
-webkit-appearance: none;
|
1379
|
+
-moz-appearance: none;
|
1380
|
+
appearance: none; }
|
1381
|
+
|
1382
|
+
.range::-ms-thumb {
|
1383
|
+
height: 2.1rem;
|
1384
|
+
width: 2.1rem;
|
1385
|
+
box-shadow: 1px 1px 3px rgba(30, 30, 31, 0.15);
|
1386
|
+
border-radius: 1.05rem;
|
1387
|
+
background: #f2f2f3;
|
1388
|
+
cursor: pointer;
|
1389
|
+
-webkit-appearance: none;
|
1390
|
+
appearance: none; }
|
1391
|
+
|
1392
|
+
.resizable {
|
1393
|
+
position: relative;
|
1394
|
+
margin: 0 auto;
|
1395
|
+
width: 100%;
|
1396
|
+
min-width: 19.25rem;
|
1397
|
+
border-radius: 4px;
|
1398
|
+
line-height: 0; }
|
1399
|
+
.resizable > .card {
|
1400
|
+
position: relative;
|
1401
|
+
padding-right: 1.25rem; }
|
1402
|
+
.resizable .iframe {
|
1403
|
+
width: 100%;
|
1404
|
+
min-height: 10rem;
|
1405
|
+
-webkit-transition: height 0.3s ease;
|
1406
|
+
transition: height 0.3s ease;
|
1407
|
+
overflow: hidden; }
|
1408
|
+
|
1409
|
+
.resizable--is-transitioning-width {
|
1410
|
+
-webkit-transition: width 0.3s ease;
|
1411
|
+
transition: width 0.3s ease; }
|
1412
|
+
|
1413
|
+
.resizable__handle {
|
1414
|
+
position: absolute;
|
1415
|
+
top: 0;
|
1416
|
+
right: 0;
|
1417
|
+
width: 1.25rem;
|
1418
|
+
height: 100%;
|
1419
|
+
cursor: col-resize;
|
1420
|
+
background: #d1d3d7;
|
1421
|
+
border-radius: 0 4px 4px 0; }
|
1422
|
+
.resizable__handle:hover,
|
1423
|
+
.resizable__handle:focus {
|
1424
|
+
outline: none; }
|
1425
|
+
.resizable__handle:after {
|
1426
|
+
content: "";
|
1427
|
+
position: absolute;
|
1428
|
+
top: 50%;
|
1429
|
+
left: 50%;
|
1430
|
+
display: block;
|
1431
|
+
height: 2rem;
|
1432
|
+
width: 0.4375rem;
|
1433
|
+
margin-top: -1rem;
|
1434
|
+
margin-left: -0.21875rem;
|
1435
|
+
border-right: 1px solid #9c9da5;
|
1436
|
+
border-left: 1px solid #9c9da5; }
|
1437
|
+
|
1438
|
+
.resizable__actions {
|
1439
|
+
display: -webkit-box;
|
1440
|
+
display: -webkit-flex;
|
1441
|
+
display: -ms-flexbox;
|
1442
|
+
display: flex;
|
1443
|
+
-webkit-box-pack: justify;
|
1444
|
+
-webkit-justify-content: space-between;
|
1445
|
+
-ms-flex-pack: justify;
|
1446
|
+
justify-content: space-between;
|
1447
|
+
-webkit-box-align: end;
|
1448
|
+
-webkit-align-items: flex-end;
|
1449
|
+
-ms-flex-align: end;
|
1450
|
+
align-items: flex-end;
|
1451
|
+
margin-bottom: 0.5rem; }
|
1452
|
+
|
1453
|
+
.resizable__width-indicator {
|
1454
|
+
color: #b1b1b1;
|
1455
|
+
font: 300 1rem/1 Consolas, monospace;
|
1456
|
+
opacity: 0.4;
|
1457
|
+
-webkit-transition: opacity 0.3s ease;
|
1458
|
+
transition: opacity 0.3s ease; }
|
1459
|
+
|
1460
|
+
.resizable__width-indicator--is-visible {
|
1461
|
+
opacity: 1; }
|
1462
|
+
|
1463
|
+
.resizable__size-buttons {
|
1464
|
+
display: -webkit-box;
|
1465
|
+
display: -webkit-flex;
|
1466
|
+
display: -ms-flexbox;
|
1467
|
+
display: flex; }
|
1468
|
+
|
1469
|
+
.resizable__size-button {
|
1470
|
+
position: relative;
|
1471
|
+
margin-left: 0.5rem;
|
1472
|
+
cursor: pointer;
|
1473
|
+
opacity: 0.5;
|
1474
|
+
-webkit-transition: opacity 0.3s ease;
|
1475
|
+
transition: opacity 0.3s ease; }
|
1476
|
+
.resizable__size-button > .icon {
|
1477
|
+
height: 1.8rem;
|
1478
|
+
width: 1.8rem;
|
1479
|
+
fill: #e3e4e6;
|
1480
|
+
stroke: #e3e4e6;
|
1481
|
+
-webkit-transition: fill 0.3s ease;
|
1482
|
+
transition: fill 0.3s ease; }
|
1483
|
+
.resizable__size-button:hover,
|
1484
|
+
.resizable__size-button:focus,
|
1485
|
+
.resizable__size-button:active,
|
1486
|
+
.resizable__size-button.resizable__size-button--is-active {
|
1487
|
+
outline: none; }
|
1488
|
+
.resizable__size-button:hover,
|
1489
|
+
.resizable__size-button:focus {
|
1490
|
+
opacity: 0.8; }
|
1491
|
+
.resizable__size-button.resizable__size-button--is-active,
|
1492
|
+
.resizable__size-button:active {
|
1493
|
+
opacity: 1; }
|
1494
|
+
.resizable__size-button.resizable__size-button--is-active > .icon,
|
1495
|
+
.resizable__size-button:active > .icon {
|
1496
|
+
fill: #4196df;
|
1497
|
+
stroke: #4196df; }
|
1498
|
+
|
1499
|
+
.resizable__size-button--is-hidden {
|
1500
|
+
display: none; }
|
1501
|
+
|
1502
|
+
.scroll-container {
|
1503
|
+
overflow: hidden; }
|
1504
|
+
|
1505
|
+
.section {
|
1506
|
+
margin: 2rem 0;
|
1507
|
+
padding: 1rem 0; }
|
1508
|
+
.section > *:first-child,
|
1509
|
+
.section > *:first-child > *:first-child {
|
1510
|
+
margin-top: 0; }
|
1511
|
+
.section > *:last-child,
|
1512
|
+
.section > *:last-child > *:last-child {
|
1513
|
+
margin-bottom: 0; }
|
1514
|
+
|
1515
|
+
.section--small {
|
1516
|
+
border: none;
|
1517
|
+
padding: 0;
|
1518
|
+
margin: 1rem 0; }
|
1519
|
+
|
1520
|
+
.section--subdued {
|
1521
|
+
background: #f1f1f1;
|
1522
|
+
overflow: hidden; }
|
1523
|
+
.section--subdued.section--small {
|
1524
|
+
padding: 1rem 0;
|
1525
|
+
margin: 0; }
|
1526
|
+
|
1527
|
+
.section__container > .section:first-child {
|
1528
|
+
margin-top: 2rem; }
|
1529
|
+
|
1530
|
+
.section__container > .section:last-child {
|
1531
|
+
margin-bottom: 2rem; }
|
1532
|
+
|
1533
|
+
.section__container > .section--small:first-child {
|
1534
|
+
margin-top: 1rem; }
|
1535
|
+
|
1536
|
+
.section__container > .section--small:last-child {
|
1537
|
+
margin-bottom: 1rem; }
|
1538
|
+
|
1539
|
+
.select {
|
1540
|
+
position: relative;
|
1541
|
+
display: inline-block;
|
1542
|
+
border-radius: 4px;
|
1543
|
+
background-color: #e3e4e6; }
|
1544
|
+
.select:after {
|
1545
|
+
content: "";
|
1546
|
+
position: absolute;
|
1547
|
+
right: 0.75rem;
|
1548
|
+
top: 50%;
|
1549
|
+
-webkit-transform: rotate(45deg);
|
1550
|
+
transform: rotate(45deg);
|
1551
|
+
display: block;
|
1552
|
+
height: 0.63281rem;
|
1553
|
+
width: 0.63281rem;
|
1554
|
+
margin-top: -0.47461rem;
|
1555
|
+
border: solid rgba(156, 157, 165, 0.5);
|
1556
|
+
border-width: 0 2px 2px 0;
|
1557
|
+
pointer-events: none; }
|
1558
|
+
.select + .docks-button {
|
1559
|
+
margin-left: 0.5rem; }
|
1560
|
+
|
1561
|
+
.select--is-focused {
|
1562
|
+
border-color: #4196df; }
|
1563
|
+
|
1564
|
+
.select--code > .select__input {
|
1565
|
+
font-family: Consolas, monospace; }
|
1566
|
+
|
1567
|
+
.select__input {
|
1568
|
+
-webkit-appearance: none;
|
1569
|
+
-moz-appearance: none;
|
1570
|
+
box-sizing: border-box;
|
1571
|
+
display: block;
|
1572
|
+
width: 100%;
|
1573
|
+
max-width: none;
|
1574
|
+
height: auto;
|
1575
|
+
padding: 0 2.13281rem 0 0.75rem;
|
1576
|
+
background: transparent;
|
1577
|
+
border: none;
|
1578
|
+
font-size: 1.0125rem;
|
1579
|
+
line-height: 2.125rem;
|
1580
|
+
font-family: inherit;
|
1581
|
+
color: #9c9da5; }
|
1582
|
+
.select__input:focus {
|
1583
|
+
outline: none;
|
1584
|
+
border: none; }
|
1585
|
+
.select__input > option {
|
1586
|
+
color: #33363a; }
|
1587
|
+
|
1588
|
+
_:-ms-input-placeholder, :root .select__input::-ms-expand {
|
1589
|
+
display: none; }
|
1590
|
+
|
1591
|
+
_:-ms-input-placeholder, :root .select__input:focus::-ms-value {
|
1592
|
+
background: transparent; }
|
1593
|
+
|
1594
|
+
@supports (-moz-appearance: meterbar) and (background-blend-mode: difference, normal) {
|
1595
|
+
_::-moz-progress-bar,
|
1596
|
+
body:last-child .select__input__wrapper {
|
1597
|
+
overflow: hidden; }
|
1598
|
+
_::-moz-progress-bar,
|
1599
|
+
body:last-child .select__input {
|
1600
|
+
width: calc(100% + 30px); } }
|
1601
|
+
|
1602
|
+
.select__input:-moz-focusring {
|
1603
|
+
color: transparent;
|
1604
|
+
text-shadow: 0 0 0 black; }
|
1605
|
+
|
1606
|
+
.table {
|
1607
|
+
width: 100%;
|
1608
|
+
min-width: 31.25rem;
|
1609
|
+
border-collapse: separate;
|
1610
|
+
border-spacing: 0; }
|
1611
|
+
|
1612
|
+
.table__container {
|
1613
|
+
margin: 1rem auto; }
|
1614
|
+
|
1615
|
+
.table__container--is-overflowing .table__cell:first-child {
|
1616
|
+
position: absolute;
|
1617
|
+
z-index: 20;
|
1618
|
+
left: 0;
|
1619
|
+
height: 100%;
|
1620
|
+
box-shadow: 3px 0 4px -1px rgba(30, 30, 31, 0);
|
1621
|
+
-webkit-transition: box-shadow 0.2s ease;
|
1622
|
+
transition: box-shadow 0.2s ease; }
|
1623
|
+
|
1624
|
+
.table__container--is-overflowing .table__actions {
|
1625
|
+
-webkit-transform: translateY(0);
|
1626
|
+
transform: translateY(0);
|
1627
|
+
max-height: 3rem;
|
1628
|
+
padding-bottom: 0.5rem; }
|
1629
|
+
|
1630
|
+
.table__scroller {
|
1631
|
+
max-width: 100%;
|
1632
|
+
overflow-x: auto;
|
1633
|
+
overflow-y: hidden;
|
1634
|
+
-webkit-overflow-scrolling: touch; }
|
1635
|
+
|
1636
|
+
.table__scroller--is-scrolled .table__cell:first-child {
|
1637
|
+
box-shadow: 3px 0 4px -1px rgba(30, 30, 31, 0.1); }
|
1638
|
+
|
1639
|
+
.table__backdrop {
|
1640
|
+
position: relative;
|
1641
|
+
z-index: 30;
|
1642
|
+
max-width: 100%;
|
1643
|
+
clear: both;
|
1644
|
+
overflow: hidden;
|
1645
|
+
border: 1px solid #f1f1f1;
|
1646
|
+
border-radius: 8px; }
|
1647
|
+
|
1648
|
+
.table__actions {
|
1649
|
+
-webkit-transform: translateY(140%);
|
1650
|
+
transform: translateY(140%);
|
1651
|
+
max-height: 0;
|
1652
|
+
float: right;
|
1653
|
+
-webkit-transition: -webkit-transform 0.3s cubic-bezier(0.32, 1.44, 0.46, 0.99), max-height 0.3s ease, padding-bottom 0.3s ease;
|
1654
|
+
transition: transform 0.3s cubic-bezier(0.32, 1.44, 0.46, 0.99), max-height 0.3s ease, padding-bottom 0.3s ease; }
|
1655
|
+
|
1656
|
+
.table__header {
|
1657
|
+
font-weight: 400;
|
1658
|
+
padding: 0;
|
1659
|
+
text-align: left; }
|
1660
|
+
|
1661
|
+
.table__body > .table__row:nth-child(odd) > .table__cell {
|
1662
|
+
background-color: #f8f8f8; }
|
1663
|
+
|
1664
|
+
.table__row {
|
1665
|
+
overflow: hidden; }
|
1666
|
+
|
1667
|
+
.table__cell {
|
1668
|
+
position: relative;
|
1669
|
+
z-index: 10;
|
1670
|
+
vertical-align: top;
|
1671
|
+
padding: 0.5rem;
|
1672
|
+
background-color: white; }
|
1673
|
+
|
1674
|
+
.table__cell--centered {
|
1675
|
+
text-align: center; }
|
1676
|
+
|
1677
|
+
.tablist {
|
1678
|
+
margin: 0;
|
1679
|
+
padding: 0;
|
1680
|
+
display: -webkit-box;
|
1681
|
+
display: -webkit-flex;
|
1682
|
+
display: -ms-flexbox;
|
1683
|
+
display: flex;
|
1684
|
+
-webkit-box-pack: center;
|
1685
|
+
-webkit-justify-content: center;
|
1686
|
+
-ms-flex-pack: center;
|
1687
|
+
justify-content: center;
|
1688
|
+
padding: 0.5rem;
|
1689
|
+
margin-right: -0.5rem;
|
1690
|
+
list-style: none; }
|
1691
|
+
|
1692
|
+
.tablist--large {
|
1693
|
+
margin: 2rem 0; }
|
1694
|
+
.tablist--large > .tablist__tab {
|
1695
|
+
font-size: 1.5rem;
|
1696
|
+
line-height: 1;
|
1697
|
+
padding: 1rem 2.5rem 1.2rem;
|
1698
|
+
border: none !important;
|
1699
|
+
opacity: 1 !important; }
|
1700
|
+
.tablist--large > .tablist__tab--is-active {
|
1701
|
+
background-color: #f2f2f3; }
|
1702
|
+
|
1703
|
+
.tablist__tab {
|
1704
|
+
display: inline-block;
|
1705
|
+
padding: 0 0.75rem;
|
1706
|
+
opacity: 0.3;
|
1707
|
+
overflow: hidden;
|
1708
|
+
border: 1px solid transparent;
|
1709
|
+
border-radius: 4px;
|
1710
|
+
-webkit-transition: opacity 0.3s ease, border-color 0.3s ease;
|
1711
|
+
transition: opacity 0.3s ease, border-color 0.3s ease;
|
1712
|
+
font-size: 1.125rem;
|
1713
|
+
line-height: 2.125rem;
|
1714
|
+
color: #9c9da5;
|
1715
|
+
text-align: center;
|
1716
|
+
text-decoration: none;
|
1717
|
+
white-space: nowrap;
|
1718
|
+
text-overflow: ellipsis; }
|
1719
|
+
.tablist__tab:focus,
|
1720
|
+
.tablist__tab:hover {
|
1721
|
+
outline: none;
|
1722
|
+
opacity: 0.5; }
|
1723
|
+
.tablist__tab > .icon {
|
1724
|
+
height: 2rem;
|
1725
|
+
width: 2rem;
|
1726
|
+
fill: #d1d3d7;
|
1727
|
+
stroke: #d1d3d7;
|
1728
|
+
stroke-width: 3px; }
|
1729
|
+
|
1730
|
+
.tablist__tab--is-active, .tablist__tab--is-active:hover, .tablist__tab--is-active:focus {
|
1731
|
+
border-color: #9c9da5;
|
1732
|
+
opacity: 1; }
|
1733
|
+
|
1734
|
+
.tablist__tab__text {
|
1735
|
+
display: block; }
|
1736
|
+
|
1737
|
+
.tablist__panel {
|
1738
|
+
display: none; }
|
1739
|
+
|
1740
|
+
.tablist__panel--is-active {
|
1741
|
+
display: block; }
|
1742
|
+
|
1743
|
+
.vertical-spacer {
|
1744
|
+
margin: 0.5rem 0; }
|
1745
|
+
|
1746
|
+
.vertical-stack {
|
1747
|
+
display: -webkit-box;
|
1748
|
+
display: -webkit-flex;
|
1749
|
+
display: -ms-flexbox;
|
1750
|
+
display: flex;
|
1751
|
+
-webkit-box-orient: vertical;
|
1752
|
+
-webkit-box-direction: normal;
|
1753
|
+
-webkit-flex-direction: column;
|
1754
|
+
-ms-flex-direction: column;
|
1755
|
+
flex-direction: column;
|
1756
|
+
-webkit-align-self: stretch;
|
1757
|
+
-ms-flex-item-align: stretch;
|
1758
|
+
align-self: stretch;
|
1759
|
+
width: 100%; }
|
1760
|
+
|
1761
|
+
.vertical-stack__item {
|
1762
|
+
-webkit-box-flex: 1;
|
1763
|
+
-webkit-flex: 1 1 0px;
|
1764
|
+
-ms-flex: 1 1 0px;
|
1765
|
+
flex: 1 1 0px;
|
1766
|
+
max-width: 100%;
|
1767
|
+
overflow-x: hidden;
|
1768
|
+
overflow-y: auto;
|
1769
|
+
-webkit-overflow-scrolling: touch; }
|
1770
|
+
|
1771
|
+
.vertical-stack__item--fixed {
|
1772
|
+
-webkit-box-flex: 0;
|
1773
|
+
-webkit-flex: 0 0 auto;
|
1774
|
+
-ms-flex: 0 0 auto;
|
1775
|
+
flex: 0 0 auto;
|
1776
|
+
overflow: visible; }
|
1777
|
+
|
1778
|
+
body {
|
1779
|
+
position: relative; }
|
1780
|
+
body.x-ray__helpers--x-ray-is-active {
|
1781
|
+
overflow: hidden; }
|
1782
|
+
|
1783
|
+
.x-ray {
|
1784
|
+
background: white;
|
1785
|
+
position: absolute;
|
1786
|
+
top: 0;
|
1787
|
+
bottom: 0;
|
1788
|
+
left: 0;
|
1789
|
+
right: 0;
|
1790
|
+
z-index: -1;
|
1791
|
+
overflow-x: hidden;
|
1792
|
+
overflow-y: auto;
|
1793
|
+
opacity: 0;
|
1794
|
+
-webkit-transition: opacity 0.3s ease;
|
1795
|
+
transition: opacity 0.3s ease;
|
1796
|
+
min-height: 100%; }
|
1797
|
+
.x-ray .page-header {
|
1798
|
+
-webkit-box-flex: 0;
|
1799
|
+
-webkit-flex: 0 0 auto;
|
1800
|
+
-ms-flex: 0 0 auto;
|
1801
|
+
flex: 0 0 auto; }
|
1802
|
+
|
1803
|
+
.x-ray--is-active {
|
1804
|
+
opacity: 1;
|
1805
|
+
z-index: 1200; }
|
1806
|
+
|
1807
|
+
.x-ray__content {
|
1808
|
+
padding-bottom: 3rem; }
|
1809
|
+
|
1810
|
+
.x-ray__list {
|
1811
|
+
padding: 1rem;
|
1812
|
+
background-color: #f2f2f3; }
|
1813
|
+
|
1814
|
+
.x-ray__closer {
|
1815
|
+
background: transparent;
|
1816
|
+
border: none;
|
1817
|
+
padding: 0;
|
1818
|
+
-webkit-appearance: none;
|
1819
|
+
-moz-appearance: none;
|
1820
|
+
appearance: none; }
|
1821
|
+
|
1822
|
+
.x-ray__diagram {
|
1823
|
+
padding: 1rem 0 0;
|
1824
|
+
background: #e3e4e6; }
|
1825
|
+
|
1826
|
+
.x-ray__details {
|
1827
|
+
display: none; }
|
1828
|
+
|
1829
|
+
.x-ray__details--is-visible {
|
1830
|
+
display: block; }
|
1831
|
+
|
1832
|
+
.x-ray__details__tagname {
|
1833
|
+
display: inline-block;
|
1834
|
+
font-size: 0.75em;
|
1835
|
+
background-color: #f2f2f3;
|
1836
|
+
padding: 0.3em 0.4em 0.2em;
|
1837
|
+
border-radius: 4px;
|
1838
|
+
line-height: 1;
|
1839
|
+
color: #9c9da5;
|
1840
|
+
margin-right: 0.25rem; }
|
1841
|
+
|
1842
|
+
.x-ray__details__description {
|
1843
|
+
margin-bottom: 2rem; }
|
1844
|
+
|
1845
|
+
.sidebar {
|
1846
|
+
position: absolute;
|
1847
|
+
left: 0;
|
1848
|
+
top: 0;
|
1849
|
+
-webkit-transform: translate3d(-100%, 0, 0);
|
1850
|
+
transform: translate3d(-100%, 0, 0);
|
1851
|
+
-webkit-transition: -webkit-transform 0.2s ease;
|
1852
|
+
transition: transform 0.2s ease;
|
1853
|
+
max-width: 15rem;
|
1854
|
+
display: -webkit-box;
|
1855
|
+
display: -webkit-flex;
|
1856
|
+
display: -ms-flexbox;
|
1857
|
+
display: flex;
|
1858
|
+
height: 100vh;
|
1859
|
+
background-color: white;
|
1860
|
+
box-shadow: 0 0 4px rgba(30, 30, 31, 0.3); }
|
1861
|
+
@media screen and (min-width: 40.0625rem) {
|
1862
|
+
.sidebar {
|
1863
|
+
position: static;
|
1864
|
+
-webkit-transform: translate3d(0, 0, 0);
|
1865
|
+
transform: translate3d(0, 0, 0); } }
|
1866
|
+
|
1867
|
+
.sidebar--is-active {
|
1868
|
+
-webkit-transform: translate3d(0, 0, 0);
|
1869
|
+
transform: translate3d(0, 0, 0); }
|
1870
|
+
|
1871
|
+
.sidebar__toggler {
|
1872
|
+
background: transparent;
|
1873
|
+
padding: 0;
|
1874
|
+
margin: 0;
|
1875
|
+
-webkit-appearance: none;
|
1876
|
+
-moz-appearance: none;
|
1877
|
+
appearance: none;
|
1878
|
+
border: none; }
|
1879
|
+
.sidebar__toggler:focus {
|
1880
|
+
outline: none; }
|
1881
|
+
|
1882
|
+
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWxpdGllcy9tZWRpYS9tZWRpYS5zY3NzIiwidXRpbGl0aWVzL2ZvdW5kYXRpb24vYTExeS5zY3NzIiwidXRpbGl0aWVzL2ZvdW5kYXRpb24vYmFzZS5zY3NzIiwidXRpbGl0aWVzL2NvbG9ycy9jb2xvcnMuc2NzcyIsInV0aWxpdGllcy9mb3VuZGF0aW9uL2ljb24uc2NzcyIsInV0aWxpdGllcy9mdW5jdGlvbnMvZnVuY3Rpb25zLnNjc3MiLCJ1dGlsaXRpZXMvZm91bmRhdGlvbi9sYXlvdXQuc2NzcyIsInV0aWxpdGllcy9kZWZhdWx0cy9kZWZhdWx0cy5zY3NzIiwidXRpbGl0aWVzL2ZvdW5kYXRpb24vcGFnZS5zY3NzIiwidXRpbGl0aWVzL3pfaW5kZXhlcy96LWluZGV4ZXMuc2NzcyIsInV0aWxpdGllcy9mb3VuZGF0aW9uL3R5cGUuc2NzcyIsInV0aWxpdGllcy9mb250X3NpemVzL2ZvbnQtc2l6ZXMuc2NzcyIsImNvbXBvbmVudHMvYXZhdGFyL2F2YXRhci5zY3NzIiwiY29tcG9uZW50cy9iYWRnZS9iYWRnZS5zY3NzIiwiY29tcG9uZW50cy9idXR0b24vYnV0dG9uLnNjc3MiLCJjb21wb25lbnRzL2NhcmQvY2FyZC5zY3NzIiwiY29tcG9uZW50cy9jb2RlX2Jsb2NrL2NvZGUtYmxvY2suc2NzcyIsImNvbXBvbmVudHMvZGVtby9kZW1vLnNjc3MiLCJjb21wb25lbnRzL2V4cGxvZGVkL2V4cGxvZGVkLnNjc3MiLCJjb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJjb21wb25lbnRzL2hlYWRlci9oZWFkZXIuc2NzcyIsImNvbXBvbmVudHMvaW5saW5lX2dyb3VwL2lubGluZS1ncm91cC5zY3NzIiwiY29tcG9uZW50cy9saXN0L2xpc3Quc2NzcyIsInV0aWxpdGllcy9taXhpbnMvbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL21vZGFsL21vZGFsLnNjc3MiLCJjb21wb25lbnRzL25vdGljZS9ub3RpY2Uuc2NzcyIsImNvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLnNjc3MiLCJjb21wb25lbnRzL3JhbmdlL3JhbmdlLnNjc3MiLCJjb21wb25lbnRzL3Jlc2l6YWJsZS9yZXNpemFibGUuc2NzcyIsImNvbXBvbmVudHMvc2Nyb2xsX2NvbnRhaW5lci9zY3JvbGwtY29udGFpbmVyLnNjc3MiLCJjb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5zY3NzIiwiY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LnNjc3MiLCJjb21wb25lbnRzL3RhYmxlL3RhYmxlLnNjc3MiLCJjb21wb25lbnRzL3RhYmxpc3QvdGFibGlzdC5zY3NzIiwiY29tcG9uZW50cy92ZXJ0aWNhbF9zcGFjZXIvdmVydGljYWwtc3BhY2VyLnNjc3MiLCJjb21wb25lbnRzL3ZlcnRpY2FsX3N0YWNrL3ZlcnRpY2FsLXN0YWNrLnNjc3MiLCJjb21wb25lbnRzL3hyYXkveHJheS5zY3NzIiwic3RydWN0dXJlcy9zaWRlYmFyL3NpZGViYXIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RkU7RUFzRXlDO0lBRWIsY0FBYyxFQUR4QyxFQUFBOztBQS9FRjtFQWlGQztJQUcwQixjQUFjLEVBRHZDLEVBQUE7O0FBRUQ7RUFHQyxjQUFjLEVBRGQ7RUF2RkY7SUFxRkM7TUFLMEIsZUFBZSxFQUh4QyxFQUFBOztBQS9FRjtFQXNFeUM7SUFFYixjQUFjLEVBRHhDLEVBQUE7O0FBL0VGO0VBaUZDO0lBRzBCLGNBQWMsRUFEdkMsRUFBQTs7QUFFRDtFQUdDLGNBQWMsRUFEZDtFQXZGRjtJQXFGQztNQUswQixlQUFlLEVBSHhDLEVBQUE7O0FBL0VGO0VBc0V5QztJQUViLGNBQWMsRUFEeEMsRUFBQTs7QUEvRUY7RUFpRkM7SUFHMEIsY0FBYyxFQUR2QyxFQUFBOztBQUVEO0VBR0MsY0FBYyxFQURkO0VBdkZGO0lBcUZDO01BSzBCLGVBQWUsRUFIeEMsRUFBQTs7QUN0S0o7RUFDRSxVQUFVO0VBQ1Ysb0JBQVU7RUFDVixZQUFZO0VBQ1osYUFBYTtFQUNiLGlCQUFpQjtFQUNqQixXQUFXO0VB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akI7RUFDRSxlQUFlLEVBRFk7O0FBSTdCO0VBQ0Usc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQiwwQmpDaERZO0VpQ2lEWiwyQkFBMEI7RTdCakMxQixtQkFma0I7RTZCa0RsQixlQUFlO0VBQ2YsZWpDakRhO0VpQ2tEYixzQkFBc0IsRUFSRTs7QUFXMUI7RUFDRSxvQkFBaUIsRUFEVzs7QUNsRDlCO0VBRUUsbUJBQW1CO0VBQ25CLFFBQVE7RUFBRSxPQUFPO0VBQ2pCLDRDQUE4QjtFQUM5QixvQ0FBc0I7RUFDdEIsZ0RBQStCO1VBQS9CLGdDQUErQjtFQUMvQixpQkFBaUI7RUFHakIscUJBQWM7RUFBZCxzQkFBYztFQUFkLHFCQUFjO0VBQWQsY0FBYztFQUNkLGNBQWM7RUFHZCx3QmxDeEJrQjtFSW9CbEIsMENKVVUsRWtDcEJGO0VyQ3FEUjtJcUNyREY7TUFrQkksaUJBQWlCO01BQ2pCLHdDQUFzQjtjQUF0QixnQ0FBc0IsRUFuQmhCLEVBQUE7O0FBMkJWO0VBQ0Usd0NBQXNCO1VBQXRCLGdDQUFzQixFQURIOztBQVdyQjtFQUNFLHdCQUF3QjtFQUN4QixXQUFXO0VBQ1gsVUFBVTtFQUNWLHlCQUFpQjtLQUFqQixzQkFBaUI7VUFBakIsaUJBQWlCO0VBQ2pCLGFBQWEsRUFMSTtFQU9oQjtJQUNDLGNBQWMsRUFEUCIsImZpbGUiOiJwYXR0ZXJuLWxpYnJhcnktZGVtby5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgX19fX18gICAgICAgICAgICAgICAgICBfX19cbi8vICAgICAgIC9fXy9cXCAgICAgICAgLyAgL1xcICAgICAgLyAgLzo6XFwgICAgIF9fXyAgICAgICAgLyAgL1xcXG4vLyAgICAgIHwgIHw6OlxcICAgICAgLyAgLzovXyAgICAvICAvOi9cXDpcXCAgIC8gIC9cXCAgICAgIC8gIC86OlxcXG4vLyAgICAgIHwgIHw6fDpcXCAgICAvICAvOi8gL1xcICAvICAvOi8gIFxcOlxcIC8gIC86LyAgICAgLyAgLzovXFw6XFxcbi8vICAgIF9ffF9ffDp8XFw6XFwgIC8gIC86LyAvOi9fL19fLzovIFxcX19cXDovX18vOjpcXCAgICAvICAvOi9+Lzo6XFxcbi8vICAgL19fLzo6Ojp8IFxcOlxcL19fLzovIC86LyAvXFwgIFxcOlxcIC8gIC86fF9fXFwvXFw6XFxfXy9fXy86LyAvOi9cXDpcXFxuLy8gICBcXCAgXFw6XFx+flxcX19cXC9cXCAgXFw6XFwvOi8gLzovXFwgIFxcOlxcICAvOi8gICBcXCAgXFw6XFwvXFwgIFxcOlxcLzovX19cXC9cbi8vICAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6XFwvOi8gICAgIFxcX19cXDo6L1xcICBcXDo6L1xuLy8gICAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOjovICAgICAgL19fLzovICBcXCAgXFw6XFxcbi8vICAgICAgXFwgIFxcOlxcICAgICAgIFxcICBcXDo6LyAgICAgIFxcX19cXC8gICAgICAgXFxfX1xcLyAgICBcXCAgXFw6XFxcbi8vICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcX19cXC9cblxuXG5cbiRCUkVBS1BPSU5UUzogKFxuICBzbWFsbDogMjVyZW0sXG4gIG1lZGl1bTogMzcuNXJlbSxcbiAgbGFyZ2U6IDUwcmVtXG4pO1xuXG4kQlJFQUtQT0lOVF9JTkNSRU1FTlRTOiAoXG4gIHJlbTogMC4wNjI1cmVtLFxuICBlbTogMC4wNjI1ZW0sXG4gIHB4OiAxcHgsXG4gIHZ3OiAxdndcbik7XG5cblxuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC12YWx1ZS1mb3IoJGJyZWFrcG9pbnQpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGJyZWFrcG9pbnQpO1xufVxuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1jbGVhbi12YWx1ZSgkcG9pbnQpIHtcbiAgQGlmIHR5cGUtb2YoJHBvaW50KSA9PSBudW1iZXIge1xuICAgIEByZXR1cm4gJHBvaW50O1xuICB9XG5cbiAgQHJldHVybiBicmVha3BvaW50LXZhbHVlLWZvcigkcG9pbnQpO1xufVxuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmNyZW1lbnQtZm9yKCR2YWx1ZSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJEJSRUFLUE9JTlRfSU5DUkVNRU5UUywgdW5pdCgkdmFsdWUpKTtcbn1cblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZGVmYXVsdC1pbmNsdXNpdml0eSgkdmFsdWUsICRkZWZhdWx0KSB7XG4gICRpbmNsdXNpdml0eTogbnVsbDtcbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7ICRpbmNsdXNpdml0eTogbnRoKCR2YWx1ZSwgMik7IH1cblxuICBAaWYgJGluY2x1c2l2aXR5IHtcbiAgICBAcmV0dXJuICRpbmNsdXNpdml0eSA9PSBpbmNsdXNpdmU7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJGRlZmF1bHQ7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtYWRqdXN0ZWQtZm9yLWluY2x1c2l2aXR5KCR2YWx1ZSwgJG1pbi1vci1tYXgsICRpbmNsdXNpdmU6IGZhbHNlKSB7XG4gICR2YWx1ZTogYnJlYWtwb2ludC1jbGVhbi12YWx1ZSgkdmFsdWUpO1xuXG4gIEBpZiBub3QgJGluY2x1c2l2ZSB7XG4gICAgQGlmICRtaW4tb3ItbWF4ID09IG1pbiB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSArIGJyZWFrcG9pbnQtaW5jcmVtZW50LWZvcigkdmFsdWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgLSBicmVha3BvaW50LWluY3JlbWVudC1mb3IoJHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIFwiKCN7JG1pbi1vci1tYXh9LXdpZHRoOiAjeyR2YWx1ZX0pXCI7XG59XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXJldGluaXplLW1lZGlhLXF1ZXJ5KCRtZWRpYS1xdWVyeSkge1xuICBAcmV0dXJuIFwiI3skbWVkaWEtcXVlcnl9IGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXJlc29sdXRpb246IDE5MmRwaSlcIjtcbn1cblxuXG5cblxuXG5AbWl4aW4gYnJlYWtwb2ludC1hZnRlcigkcG9pbnQpIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgI3ticmVha3BvaW50LWFkanVzdGVkLWZvci1pbmNsdXNpdml0eSgkcG9pbnQsIG1pbil9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYWZ0ZXIoJHBvaW50KSB7IEBpbmNsdWRlIGJyZWFrcG9pbnQtYWZ0ZXIoJHBvaW50KSB7IEBjb250ZW50OyB9IH1cblxuQG1peGluIGJyZWFrcG9pbnQtYmVmb3JlKCRwb2ludCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQtYWRqdXN0ZWQtZm9yLWluY2x1c2l2aXR5KCRwb2ludCwgbWF4KX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZWZvcmUoJHBvaW50KSB7IEBpbmNsdWRlIGJyZWFrcG9pbnQtYmVmb3JlKCRwb2ludCkgeyBAY29udGVudDsgfSB9XG5cbkBtaXhpbiBicmVha3BvaW50KCRhZnRlcjogbnVsbCwgJGJlZm9yZTogbnVsbCwgJGZyb206IG51bGwsICR0bzogbnVsbCwgJHVudGlsOiBudWxsLCAkcmV0aW5hOiBmYWxzZSkge1xuICAkbWluLXdpZHRoOiBudWxsO1xuICAkbWF4LXdpZHRoOiBudWxsO1xuICAkbWluLWluY2x1c2l2ZTogbnVsbDtcbiAgJG1heC1pbmNsdXNpdmU6IG51bGw7XG5cbiAgLy8gJGFmdGVyIGRlZmF1bHRzIHRvIGV4Y2x1c2l2ZVxuICBAaWYgJGFmdGVyIHtcbiAgICAkbWluLXdpZHRoOiBudGgoJGFmdGVyLCAxKTtcbiAgICAkbWluLWluY2x1c2l2ZTogYnJlYWtwb2ludC1kZWZhdWx0LWluY2x1c2l2aXR5KCRhZnRlciwgZmFsc2UpO1xuICB9XG5cbiAgLy8gJGZyb20gZGVmYXVsdHMgdG8gaW5jbHVzaXZlXG4gIEBpZiAkZnJvbSB7XG4gICAgJG1pbi13aWR0aDogbnRoKCRmcm9tLCAxKTtcbiAgICAkbWluLWluY2x1c2l2ZTogYnJlYWtwb2ludC1kZWZhdWx0LWluY2x1c2l2aXR5KCRmcm9tLCB0cnVlKTtcbiAgfVxuXG4gIC8vICRiZWZvcmUgZGVmYXVsdHMgdG8gZXhjbHVzaXZlXG4gIEBpZiAkYmVmb3JlIHtcbiAgICAkbWF4LXdpZHRoOiBudGgoJGJlZm9yZSwgMSk7XG4gICAgJG1heC1pbmNsdXNpdmU6IGJyZWFrcG9pbnQtZGVmYXVsdC1pbmNsdXNpdml0eSgkYmVmb3JlLCBmYWxzZSk7XG4gIH1cblxuICAvLyAkdG8gZGVmYXVsdHMgdG8gaW5jbHVzaXZlXG4gIEBpZiAkdG8ge1xuICAgICRtYXgtd2lkdGg6IG50aCgkdG8sIDEpO1xuICAgICRtYXgtaW5jbHVzaXZlOiBicmVha3BvaW50LWRlZmF1bHQtaW5jbHVzaXZpdHkoJHRvLCB0cnVlKTtcbiAgfVxuXG4gIC8vICR1bnRpbCBkZWZhdWx0cyB0byBleGNsdXNpdmVcbiAgQGlmICR1bnRpbCB7XG4gICAgJG1heC13aWR0aDogbnRoKCR1bnRpbCwgMSk7XG4gICAgJG1heC1pbmNsdXNpdmU6IGJyZWFrcG9pbnQtZGVmYXVsdC1pbmNsdXNpdml0eSgkdW50aWwsIGZhbHNlKTtcbiAgfVxuXG4gIEBpZiAkbWF4LXdpZHRoIHsgJG1heC13aWR0aDogYnJlYWtwb2ludC1hZGp1c3RlZC1mb3ItaW5jbHVzaXZpdHkoJG1heC13aWR0aCwgbWF4LCAkbWF4LWluY2x1c2l2ZSk7IH1cbiAgQGlmICRtaW4td2lkdGggeyAkbWluLXdpZHRoOiBicmVha3BvaW50LWFkanVzdGVkLWZvci1pbmNsdXNpdml0eSgkbWluLXdpZHRoLCBtaW4sICRtaW4taW5jbHVzaXZlKTsgfVxuXG4gICRtZWRpYS1xdWVyeTogXCJzY3JlZW5cIjtcbiAgQGlmICRtaW4td2lkdGggeyAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiIGFuZCAjeyRtaW4td2lkdGh9XCI7IH1cbiAgQGlmICRtYXgtd2lkdGggeyAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiIGFuZCAjeyRtYXgtd2lkdGh9XCI7IH1cbiAgQGlmICRyZXRpbmEgeyAkbWVkaWEtcXVlcnk6IGJyZWFrcG9pbnQtcmV0aW5pemUtbWVkaWEtcXVlcnkoJG1lZGlhLXF1ZXJ5KTsgfVxuXG4gIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuXG5AbWl4aW4gcHJpbnQoKSB7XG4gIEBtZWRpYSBwcmludCB7IEBjb250ZW50OyB9XG59XG5cblxuXG5AbWl4aW4gcmV0aW5hKCkge1xuICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7IEBjb250ZW50OyB9XG59XG5cblxuXG5AZWFjaCAkYnJlYWtwb2ludCwgJHdpZHRoIGluICRCUkVBS1BPSU5UUyB7XG4gIC5tZWRpYV9faGVscGVycy0taGlkZS1iZWZvcmUtI3skYnJlYWtwb2ludH0ge1xuICAgIEBpbmNsdWRlIGJlZm9yZSgkd2lkdGgpIHsgZGlzcGxheTogbm9uZTsgfVxuICB9XG5cbiAgLm1lZGlhX19oZWxwZXJzLS1oaWRlLWFmdGVyLSN7JGJyZWFrcG9pbnR9IHtcbiAgICBAaW5jbHVkZSBhZnRlcigkd2lkdGgpIHsgZGlzcGxheTogbm9uZTsgfVxuICB9XG5cbiAgLm1lZGlhX19oZWxwZXJzLS1zaG93LWFmdGVyLSN7JGJyZWFrcG9pbnR9IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYWZ0ZXIoJHdpZHRoKSB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gIH1cbn1cbiIsIi5oZWxwZXItLXZpc3VhbGx5LWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xufVxuIiwiLy8gICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICBfX18gICAgICAgICAgX19fXG4vLyAgICAgICBfX19fXyAgICAgICAvICAvXFwgICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86OlxcICAgICAvICAvOjpcXCAgICAgIC8gIC86L18gICAgICAvICAvOi9fXG4vLyAgICAgLyAgLzovXFw6XFwgICAvICAvOi9cXDpcXCAgICAvICAvOi8gL1xcICAgIC8gIC86LyAvXFxcbi8vICAgIC8gIC86L34vOjpcXCAvICAvOi9+Lzo6XFwgIC8gIC86LyAvOjpcXCAgLyAgLzovIC86L19cbi8vICAgL19fLzovIC86L1xcOi9fXy86LyAvOi9cXDpcXC9fXy86LyAvOi9cXDpcXC9fXy86LyAvOi8gL1xcXG4vLyAgIFxcICBcXDpcXC86L34vOnwgIFxcOlxcLzovX19cXC9cXCAgXFw6XFwvOi9+LzovXFwgIFxcOlxcLzovIC86L1xuLy8gICAgXFwgIFxcOjovIC86LyBcXCAgXFw6Oi8gICAgICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6Oi8gLzovXG4vLyAgICAgXFwgIFxcOlxcLzovICAgXFwgIFxcOlxcICAgICAgIFxcX19cXC8gLzovICAgIFxcICBcXDpcXC86L1xuLy8gICAgICBcXCAgXFw6Oi8gICAgIFxcICBcXDpcXCAgICAgICAgL19fLzovICAgICAgXFwgIFxcOjovXG4vLyAgICAgICBcXF9fXFwvICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cblxuaHRtbCB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7IGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3Iod2hpdGUpO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbiIsIi8vKlxuLy8gQHBhdHRlcm4gQ29sb3JzXG4vLyBAZ3JvdXAgSGVscGVyXG4vL1xuLy8gVGhpcyBzdHlsZXNoZWV0IHByb3ZpZGVzIGEgY2VudHJhbGl6ZWQgbG9jYXRpb24gdG8gbWFuYWdlIGNvbG9ycy4gQ29sb3JzXG4vLyBzaG91bGQgKipuZXZlcioqIGJlIGRlY2xhcmVkIGluIENTUyBkaXJlY3RseTsgaW5zdGVhZCwgYWRkIHRoZSBjb2xvciB0byB0aGVcbi8vIGAkQ09MT1JTYCBtYXAgKGZvbGxvd2luZyB0aGUgXCJjb2xvci1tb2RpZmllclwiIG5hbWluZyBjb252ZW50aW9uKSBhbmRcbi8vIHRoZW4gaW5jbHVkZSBpdCBhcyByZXF1aXJlZCB1c2luZyB0aGUgYGNvbG9yKClgIGZ1bmN0aW9uIGRlc2NyaWJlZCBiZWxvdy5cbi8vXG4vLyBUaGUgY29sb3IgY29tcG9uZW50IGFsc28gcHJvdmlkZXMgc29tZSB1dGlsaXR5IG1ldGhvZHMgdG8gZGFya2VuIChgc2hhZGUoKWApXG4vLyBhbmQgbGlnaHRlbiAoYHRpbnQoKWApIGNvbG9ycyDigJTCoHVzZSB0aGVzZSBvbmx5IGZvciBvbmUtb2ZmcyB0aGF0IGFyZSBkZWVtZWRcbi8vIGFic29sdXRlbHkgbmVjZXNzYXJ5LiBGb3IgdmFyaWF0aW9ucyB0aGF0IGFyZSB1c2VkIGluIG11bHRpcGxlIHBsYWNlcywgYWRkXG4vLyBhIG5ldyB2YXJpYXRpb24gdG8gdGhlIGAkQ09MT1JTYCBtYXAuXG5cblxuJFVJX0NPTE9SUzogKFxuICB3aGl0ZTogKCBiYXNlOiByZ2IoMjU1LCAyNTUsIDI1NSkgKSxcbiAgYmxhY2s6ICggYmFzZTogcmdiKDMwLCAzMCwgMzEpICksXG5cbiAgZ3JheTogKFxuICAgIGxpZ2h0OiByZ2IoMjQyLCAyNDIsIDI0MyksXG4gICAgYmFzZTogcmdiKDIyNywgMjI4LCAyMzApLFxuICAgIGRhcms6IHJnYigyMDksIDIxMSwgMjE1KSxcbiAgICBkYXJrZXI6IHJnYigxNTYsIDE1NywgMTY1KSxcbiAgICBkYXJrZXN0OiByZ2IoMTEwLCAxMTEsIDEyMilcbiAgKSxcblxuICB5ZWxsb3c6IChcbiAgICBiYXNlOiByZ2IoMjUzLCAyNDcsIDE3NSksXG4gICAgZGFyazogcmdiKDEzMywgMTI2LCA1MClcbiAgKSxcblxuICBibHVlOiAoXG4gICAgYmFzZTogcmdiKDE4MywgMjE0LCAyNDYpLFxuICAgIGRhcms6IHJnYigxNDAsIDE5NCwgMjUxKSxcbiAgICBkYXJrZXI6IHJnYig5OCwgMTIxLCAxNDQpXG4gIClcbik7XG5cbkBmdW5jdGlvbiB1aS1jb2xvcigkY29sb3IsICRzaGFkZTogYmFzZSkge1xuICBAcmV0dXJuIG1hcC1nZXQobWFwLWdldCgkVUlfQ09MT1JTLCAkY29sb3IpLCAkc2hhZGUpO1xufVxuXG5cbiRDT0xPUlM6IChcbiAgd2hpdGU6IHJnYigyNTUsIDI1NSwgMjU1KSxcbiAgYmxhY2s6IHJnYigzMCwgMzAsIDMxKSxcblxuICBibHVlLWxpZ2h0OiByZ2IoMTM1LCAxOTQsIDIzNSksXG4gIGJsdWU6IHJnYig2NSwgMTUwLCAyMjMpLFxuICBibHVlLWRhcms6IHJnYig0MCwgMTM0LCAyMTQpLFxuICBibHVlLWRhcmtlcjogcmdiKDI2LCA5MiwgMTcxKSxcblxuICB5ZWxsb3c6IHJnYigyNTIsIDI0NiwgMTYxKSxcbiAgeWVsbG93LWRhcms6IHJnYigxMzksIDEzNCwgNzIpLFxuXG4gIHNsYXRlLWxpZ2h0OiByZ2IoNTUsIDU3LCA2MCksXG4gIHNsYXRlOiByZ2IoNTEsIDU0LCA1OCksXG5cbiAgZ3JheS1saWdodGVyOiByZ2IoMjQ4LCAyNDgsIDI0OCksXG4gIGdyYXktbGlnaHQ6IHJnYigyNDEsIDI0MSwgMjQxKSxcbiAgZ3JheTogcmdiKDIwNywgMjA3LCAyMDcpLFxuICBncmF5LWRhcms6IHJnYigxNzcsIDE3NywgMTc3KSxcbiAgZ3JheS1kYXJrZXI6IHJnYig3NCwgNzQsIDc0KVxuKTtcblxuXG4vLypcbi8vIFJldHVybnMgdGhlIGNvbG9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGFzc2VkIGlkZW50aWZpZXIuXG4vL1xuLy8gQGF1dGhvciBDaHJpcyBTYXV2ZSAoZ2l0aHViOiBsZW1vbm1hZGUpXG4vL1xuLy8gQHBhcmFtIHtTdHJpbmd9ICRjb2xvciAtIFRoZSBjb2xvciAob3Igb3RoZXIgaWRlbnRpZmllciB0aGF0XG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcyB0byBhIGNvbG9yKSB0byBzZWFyY2ggZm9yIGluIHRoZVxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbCBgJENPTE9SU2AgbWFwLlxuLy9cbi8vIEBleGFtcGxlIHNjc3Ncbi8vIC5mb28ge1xuLy8gICBiYWNrZ3JvdW5kOiBjb2xvcihyZWQpOyAvLyA9PiBiYWNrZ3JvdW5kOiByZ2IoMjQ1LCA3OSwgODQpO1xuLy8gfVxuLy9cbi8vIEByZXR1cm5zIHtDb2xvcn1cblxuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvcikge1xuICBAcmV0dXJuIG1hcC1nZXQoJENPTE9SUywgJGNvbG9yKTtcbn1cblxuXG4vLypcbi8vIFNsaWdodGx5IGxpZ2h0ZW4gYSBjb2xvci5cbi8vXG4vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBUaGUgY29sb3IgdG8gdGludC5cbi8vIEBwYXJhbSB7TnVtYmVyfSAkcGVyY2VudGFnZSAtIFBlcmNlbnRhZ2Ugb2YgYCRjb2xvcmAgaW4gdGhlIHJldHVybmVkIGNvbG9yLlxuLy9cbi8vIEByZXR1cm5zIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIGNvbG9yKHdoaXRlKSwgJHBlcmNlbnRhZ2UpO1xufVxuXG5cbi8vKlxuLy8gU2xpZ2h0bHkgZGFya2VuIGEgY29sb3IuXG4vL1xuLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gVGhlIGNvbG9yIHRvIHNoYWRlLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRwZXJjZW50YWdlIC0gUGVyY2VudGFnZSBvZiBgJGNvbG9yYCBpbiB0aGUgcmV0dXJuZWQgY29sb3IuXG4vL1xuLy8gQHJldHVybnMge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgkY29sb3IsIGNvbG9yKGJsYWNrKSwgJHBlcmNlbnRhZ2UpO1xufVxuIiwiQG1peGluIGljb24tLXJlY29sb3IoJGNvbG9yLCAkdmFyaWFudDogYmFzZSkge1xuICBmaWxsOiB1aS1jb2xvcigkY29sb3IsICR2YXJpYW50KTtcbiAgc3Ryb2tlOiB1aS1jb2xvcigkY29sb3IsICR2YXJpYW50KTtcbn1cblxuXG4uaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgc3Ryb2tlLXdpZHRoOiAyO1xufVxuXG4kaWNvbi0tc2l6ZS1tZWRpdW06IHJlbSgyNCk7XG4kaWNvbi0tc2l6ZS1sYXJnZTogcmVtKDI4KTtcblxuLmljb24tLW1lZGl1bSB7XG4gIGhlaWdodDogJGljb24tLXNpemUtbWVkaXVtO1xuICB3aWR0aDogJGljb24tLXNpemUtbWVkaXVtO1xufVxuXG4uaWNvbi0tbGFyZ2Uge1xuICBoZWlnaHQ6ICRpY29uLS1zaXplLWxhcmdlO1xuICB3aWR0aDogJGljb24tLXNpemUtbGFyZ2U7XG59XG5cblxuJGljb24tYWN0aW9uLS1zaXplOiAxLjY1cmVtO1xuXG4uaWNvbi0tYWN0aW9uIHtcbiAgaGVpZ2h0OiAkaWNvbi1hY3Rpb24tLXNpemU7XG4gIHdpZHRoOiAkaWNvbi1hY3Rpb24tLXNpemU7XG59XG5cbiRpY29uLWhhbWJ1cmdlci0td2lkdGg6IDJyZW07XG4kaWNvbi1oYW1idXJnZXItLXNsaWNlLWhlaWdodDogNHB4O1xuXG4uaWNvbi0taGFtYnVyZ2VyIHtcbiAgaGVpZ2h0OiAkaWNvbi1hY3Rpb24tLXNpemU7XG4gIHdpZHRoOiAkaWNvbi1oYW1idXJnZXItLXdpZHRoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC42O1xuICB0b3A6IDAuMmVtO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogJGljb24taGFtYnVyZ2VyLS1zbGljZS1oZWlnaHQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogKCRpY29uLWhhbWJ1cmdlci0tc2xpY2UtaGVpZ2h0IC8gMik7XG4gICAgYmFja2dyb3VuZDogdWktY29sb3IoZ3JheSwgZGFya2VzdCk7XG4gIH1cblxuICAmOmJlZm9yZSB7IHRvcDogMDsgfVxuICAmOmFmdGVyIHsgYm90dG9tOiAwOyB9XG59XG5cbi5pY29uLS1oYW1idXJnZXJfX3NsaWNlIHtcbiAgaGVpZ2h0OiAkaWNvbi1oYW1idXJnZXItLXNsaWNlLWhlaWdodDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6ICgkaWNvbi1oYW1idXJnZXItLXNsaWNlLWhlaWdodCAvIDIpO1xuICBiYWNrZ3JvdW5kOiB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTsgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogKC0wLjUgKiAkaWNvbi1oYW1idXJnZXItLXNsaWNlLWhlaWdodCk7XG59XG5cbi5pY29uLS1ncmF5LWRhcmtlciB7XG4gIEBpbmNsdWRlIGljb24tLXJlY29sb3IoZ3JheSwgZGFya2VyKTtcbn1cblxuLmljb24tLWNsb3NlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6ICRpY29uLWhhbWJ1cmdlci0tc2xpY2UtaGVpZ2h0O1xuICAgIHdpZHRoOiAxNDAlO1xuICAgIGJvcmRlci1yYWRpdXM6ICgkaWNvbi1oYW1idXJnZXItLXNsaWNlLWhlaWdodCAvIDIpO1xuICAgIGJhY2tncm91bmQ6IHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTcwJTtcbiAgICBtYXJnaW4tdG9wOiAoJGljb24taGFtYnVyZ2VyLS1zbGljZS1oZWlnaHQgLyAtMik7XG4gIH1cblxuICAmOmJlZm9yZSB7IHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAmOmFmdGVyIHsgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxufVxuXG4uaWNvbi0tZGlzY2xvc3VyZSB7XG4gIGhlaWdodDogaGFsZihkZWZhdWx0KHNwYWNpbmcpKTtcbiAgd2lkdGg6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGVZKC01MCUpO1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICBtYXJnaW4tbGVmdDogcXVhcnRlcihkZWZhdWx0KHNwYWNpbmcpKTtcbn1cbiIsIi8vICAgICAgICBfX18gICAgICBfX18gICAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAvX18vXFwgICAgICAgIC9fXy9cXCAgICAgICAgLyAgL1xcICAgICAgICAvICAvXFxcbi8vICAgICAgLyAgLzovXyAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6XFwgICAgICAvICAvOi8gICAgICAgLyAgLzovX1xuLy8gICAgIC8gIC86LyAvXFwgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcICAgIC8gIC86LyAgICAgICAvICAvOi8gL1xcXG4vLyAgICAvICAvOi8gLzovX18gIFxcICBcXDpcXCAgX19fX19cXF9fXFw6XFwgIC8gIC86LyAgX19fICAvICAvOi8gLzo6XFxcbi8vICAgL19fLzovIC86L19fL1xcICBcXF9fXFw6XFwvX18vOjo6Ojo6OjpcXC9fXy86LyAgLyAgL1xcL19fLzovIC86L1xcOlxcXG4vLyAgIFxcICBcXDpcXC86L1xcICBcXDpcXCAvICAvOi9cXCAgXFw6XFx+flxcfn5cXC9cXCAgXFw6XFwgLyAgLzovXFwgIFxcOlxcLzovfi86L1xuLy8gICAgXFwgIFxcOjovICBcXCAgXFw6XFwgIC86LyAgXFwgIFxcOlxcICB+fn4gIFxcICBcXDpcXCAgLzovICBcXCAgXFw6Oi8gLzovXG4vLyAgICAgXFwgIFxcOlxcICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6XFwvOi8gICAgXFxfX1xcLyAvOi9cbi8vICAgICAgXFwgIFxcOlxcICAgXFwgIFxcOjovICAgICAgXFwgIFxcOlxcICAgICAgIFxcICBcXDo6LyAgICAgICAvX18vOi9cbi8vICAgICAgIFxcX19cXC8gICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcL1xuLy9cbi8vKlxuLy8gQHBhdHRlcm4gRnVuY3Rpb25zXG4vLyBAZ3JvdXAgSGVscGVyXG4vLyBAYXV0aG9yIENocmlzIFNhdXZlIChnaXRodWI6IGxlbW9ubWFkZSlcbi8vXG4vLyBGdW5jdGlvbnMgc2ltcGx5IHJldHVybiBhIHZhbHVlOiB0aGV5IGRvbid0IGFjdHVhbGx5IGFkZCBhIGFueSBzdHlsZXMgdG9cbi8vIHRoZSBjb21waWxlZCBzdHlsZXNoZWV0LiBVc2UgdGhlc2UgdG8gcHJvdmlkZSBzb2x1dGlvbnMgdG8gY29tbW9uIGNhbGN1bGF0aW9uc1xuLy8gb3IgU2FzcyBvcGVyYXRpb25zLlxuXG5cblxuLy8qXG4vLyBSZW1vdmVzIHRoZSB1bml0cyBmcm9tIGEgbnVtYmVyLlxuLy9cbi8vIEBkZXByZWNhdGVkIDIuMS4wXG4vLyBAcHJpdmF0ZVxuLy9cbi8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBUaGUgbnVtYmVyICh1c3VhbGx5IGEgbWVhc3VyZW1lbnQpIHRoYXQgeW91IHdvdWxkXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSB0byByZW1vdmUgdW5pdHMgZnJvbS5cbi8vIEByZXR1cm5zIHtOdW1iZXJ9XG4vL1xuLy8gQGV4YW1wbGVcbi8vICRmb286IHN0cmlwLXVuaXRzKDRyZW0pOyAvLyA9PiA0XG4vLyAkYmFyOiBzdHJpcC11bml0cygzMCUpOyAvLyA9PiAzMFxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUqMCArIDEpKTtcbn1cblxuLy8qXG4vLyBDb252ZXJ0cyB0aGUgcGFzc2VkIHZhbHVlIChhc3N1bWVkIHRvIGJlIGluIHBpeGVscykgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYHJlbWBcbi8vIHZhbHVlLiBUaGlzIGNvbnZlcnNpb24gYXNzdW1lcyBhIGJhc2UgZm9udCBzaXplIG9mIGAxNnB4YC5cbi8vXG4vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVGhlIHBpeGVsIHZhbHVlIHRvIGNvbnZlcnQuXG4vLyBAcmV0dXJucyB7TnVtYmVyfVxuXG5AZnVuY3Rpb24gcmVtKCR2YWx1ZSkge1xuICBAcmV0dXJuIChzdHJpcC11bml0cygkdmFsdWUpIC8gMTYgKiAxcmVtKTtcbn1cblxuLy8qXG4vLyBIYWx2ZXMgYSBnaXZlbiBtZWFzdXJlbWVudC5cbi8vXG4vLyBAcGFyYW0ge051bWJlcn0gJG1lYXN1cmVtZW50IC0gVGhlIG1lYXN1cmVtZW50IHRvIGhhbHZlLlxuLy8gQHJldHVybnMge051bWJlcn1cbi8vIEBhbGlhcyBoYWxmXG4vL1xuLy8gQGV4YW1wbGVcbi8vICRmb286IGhhbHZlKDRyZW0pOyAvLyA9PiAycmVtXG4vLyAkYmFyOiBoYWxmKDM2KTsgLy8gPT4gMThcblxuQGZ1bmN0aW9uIGhhbHZlKCRtZWFzdXJlbWVudCkge1xuICBAcmV0dXJuICgkbWVhc3VyZW1lbnQgLyAyKTtcbn1cblxuQGZ1bmN0aW9uIGhhbGYoJG1lYXN1cmVtZW50KSB7XG4gIEByZXR1cm4gaGFsdmUoJG1lYXN1cmVtZW50KTtcbn1cblxuLy8qXG4vLyBRdWFydGVycyBhIGdpdmVuIG1lYXN1cmVtZW50LlxuLy9cbi8vIEBwYXJhbSB7TnVtYmVyfSAkbWVhc3VyZW1lbnQgLSBUaGUgbWVhc3VyZW1lbnQgdG8gcXVhcnRlci5cbi8vIEByZXR1cm5zIHtOdW1iZXJ9XG4vL1xuLy8gQGV4YW1wbGVcbi8vICRmb286IHF1YXJ0ZXIoNHJlbSk7IC8vID0+IDFyZW1cblxuQGZ1bmN0aW9uIHF1YXJ0ZXIoJG1lYXN1cmVtZW50KSB7XG4gIEByZXR1cm4gKCRtZWFzdXJlbWVudCAvIDQpO1xufVxuXG4vLypcbi8vIERvdWJsZXMgYSBnaXZlbiBtZWFzdXJlbWVudC5cbi8vXG4vLyBAcGFyYW0ge051bWJlcn0gJG1lYXN1cmVtZW50IC0gVGhlIG1lYXN1cmVtZW50IHRvIGRvdWJsZS5cbi8vIEByZXR1cm5zIHtOdW1iZXJ9XG4vL1xuLy8gQGV4YW1wbGVcbi8vICRmb286IGRvdWJsZSg0cmVtKTsgLy8gPT4gOHJlbVxuXG5AZnVuY3Rpb24gZG91YmxlKCRtZWFzdXJlbWVudCkge1xuICBAcmV0dXJuICgkbWVhc3VyZW1lbnQgKiAyKTtcbn1cblxuLy8qXG4vLyBOZWdhdGVzIGEgZ2l2ZW4gbWVhc3VyZW1lbnQuXG4vL1xuLy8gQHBhcmFtIHtOdW1iZXJ9ICRtZWFzdXJlbWVudCAtIFRoZSBtZWFzdXJlbWVudCB0byBuZWdhdGUuXG4vLyBAcmV0dXJucyB7TnVtYmVyfVxuLy9cbi8vIEBleGFtcGxlXG4vLyAkZm9vOiBuZWdhdGl2ZSg0cmVtKTsgLy8gPT4gLTRyZW1cbi8vICRiYXI6IG5lZ2F0aXZlKC00cmVtKTsgLy8gPT4gNHJlbVxuXG5AZnVuY3Rpb24gbmVnYXRpdmUoJG1lYXN1cmVtZW50KSB7XG4gIEByZXR1cm4gKCRtZWFzdXJlbWVudCAqIC0xKTtcbn1cblxuLy8qXG4vLyBNdWx0aXBsZXMgYSBnaXZlbiBtZWFzdXJlbWVudCBieSB0aGUgcHJvdmlkZWQgZmFjdG9yLiBVc2UgdGhpcyBpbiB0aG9zZVxuLy8gKHJhcmUpIGluc3RhbmNlcyB3aGVyZSB5b3UgbmVlZCBhIGZhY3RvciB0aGF0IGlzIG5vdCBgMmAsIGAwLjVgLCBgMC4yNWAsIG9yXG4vLyBgLTFgIChpbiB3aGljaCBjYXNlLCB1c2UgdGhlIHJlbGV2YW50IG11bHRpcGxpY2F0aW9uIGZ1bmN0aW9uIGRpcmVjdGx5KS5cbi8vXG4vLyBAcGFyYW0ge051bWJlcn0gJG1lYXN1cmVtZW50IC0gVGhlIG1lYXN1cmVtZW50IHRvIG11bHRpcGxlLlxuLy8gQHBhcmFtIHtOdW1iZXJ9ICRmYWN0b3IgICAgICAtIFRoZSBtdWx0aXBsaWNhdGlvbiBmYWN0b3IuXG4vLyBAcmV0dXJucyB7TnVtYmVyfVxuLy9cbi8vIEBleGFtcGxlXG4vLyAkZm9vOiBtdWx0aXBseSg0cmVtLCAzKTsgLy8gPT4gMTJyZW1cbi8vICRiYXI6IG11bHRpcGx5KDRyZW0sIDIpOyAvLyA9PiA4cmVtIEJVVCBkb24ndCBkbyB0aGlzIOKAlMKgdXNlIGRvdWJsZSg0cmVtKSBpbnN0ZWFkXG5cbkBmdW5jdGlvbiBtdWx0aXBseSgkbWVhc3VyZW1lbnQsICRmYWN0b3IpIHtcbiAgQHJldHVybiAoJG1lYXN1cmVtZW50ICogJGZhY3Rvcik7XG59XG4iLCIvLyAgICAgICAgICAgICAgICAgICAgX19fICAgICAgICAgICAgICAgICBfX18gICAgICAgICAgX19fXG4vLyAgICAgICAgICAgICAgICAgICAvICAvXFwgICAgICAgIF9fXyAgICAvICAvXFwgICAgICAgIC9fXy9cXCAgICAgICAgX19fXG4vLyAgICAgICAgICAgICAgICAgIC8gIC86OlxcICAgICAgL19fL3wgIC8gIC86OlxcICAgICAgIFxcICBcXDpcXCAgICAgIC8gIC9cXFxuLy8gICAgX19fICAgICBfX18gIC8gIC86L1xcOlxcICAgIHwgIHw6fCAvICAvOi9cXDpcXCAgICAgICBcXCAgXFw6XFwgICAgLyAgLzovXG4vLyAgIC9fXy9cXCAgIC8gIC9cXC8gIC86L34vOjpcXCAgIHwgIHw6fC8gIC86LyAgXFw6XFwgIF9fXyAgXFwgIFxcOlxcICAvICAvOi9cbi8vICAgXFwgIFxcOlxcIC8gIC86L19fLzovIC86L1xcOlxcX198X198Oi9fXy86LyBcXF9fXFw6XFwvX18vXFwgIFxcX19cXDpcXC8gIC86OlxcXG4vLyAgICBcXCAgXFw6XFwgIC86L1xcICBcXDpcXC86L19fXFwvX18vOjo6OlxcICBcXDpcXCAvICAvOi9cXCAgXFw6XFwgLyAgLzovX18vOi9cXDpcXFxuLy8gICAgIFxcICBcXDpcXC86LyAgXFwgIFxcOjovICAgICAgIH5cXH5+XFw6XFwgIFxcOlxcICAvOi8gIFxcICBcXDpcXCAgLzovXFxfX1xcLyAgXFw6XFxcbi8vICAgICAgXFwgIFxcOjovICAgIFxcICBcXDpcXCAgICAgICAgIFxcICBcXDpcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcLzovICAgICAgXFwgIFxcOlxcXG4vLyAgICAgICBcXF9fXFwvICAgICAgXFwgIFxcOlxcICAgICAgICAgXFxfX1xcL1xcICBcXDo6LyAgICAgIFxcICBcXDo6LyAgICAgICAgXFxfX1xcL1xuLy8gICAgICAgICAgICAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cblxuLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZ3JpZC0tdmVydGljYWxseS1jZW50ZXJlZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5ncmlkLS1hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5ncmlkLS1vdXRzaWRlLXNwYWNpbmcge1xuICBtYXJnaW46IGRlZmF1bHQoc3BhY2luZykgMDtcbiAgcGFkZGluZzogMCBkZWZhdWx0KHNwYWNpbmcpO1xufVxuXG4uZ3JpZC0tc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICA+IC5ncmlkX19pdGVtIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxufVxuXG4uZ3JpZF9faXRlbSB7XG4gIHBhZGRpbmc6IDAgKGRlZmF1bHQoc3BhY2luZykgLyAyKTtcbiAgZmxleDogMSAxIDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICY6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgJjpsYXN0LWNoaWxkIHsgcGFkZGluZy1yaWdodDogMDsgfVxufVxuXG4uZ3JpZF9faXRlbS0tbm8tZmxleCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uZ3JpZF9faXRlbS0taGFsZiB7XG4gIGZsZXg6IDAgMCA1MCU7XG59XG5cblxuXG5cblxuLmNvbnRlbnQge1xuICBwYWRkaW5nOiAwIGRlZmF1bHQoc3BhY2luZyk7XG4gIG1hcmdpbjogZGVmYXVsdChzcGFjaW5nKSAwO1xufVxuXG4uY29udGVudC0tZXh0cmEtdmVydGljYWwtc3BhY2luZyB7XG4gIG1hcmdpbjogbXVsdGlwbHkoZGVmYXVsdChzcGFjaW5nKSwgMykgMDtcbn1cbiIsIi8vICAgIF9fXyAgX19fIF9fXyBfICBfICAgXyBfICBfX19fXyBfX19cbi8vICAgfCAgIFxcfCBfX3wgX18vX1xcfCB8IHwgfCB8fF8gICBfLyBfX3xcbi8vICAgfCB8KSB8IF98fCBfLyBfIFxcIHxffCB8IHxfX3wgfCBcXF9fIFxcXG4vLyAgIHxfX18vfF9fX3xfL18vIFxcX1xcX19fL3xfX19ffF98IHxfX18vXG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vL1xuLy8gVGhpcyBzdHlsZXNoZWV0IGRlY2FscmVzIGRlZmF1bHQgdmFsdWVzIGZvciBjb21tb24gdmlzdWFsIGVsZW1lbnRzLiBVc2UgdGhpc1xuLy8gbWFwIGluIHBsYWNlIG9mIGRlY2xhcmluZyB2YXJpYWJsZXMsIHdoaWNoIGNvdWxkIGJlIHNsaWdodGx5IGhhcmRlciB0byByZW1lbWJlclxuLy8gdGhlIG5hbWUgb2YgYW5kIHByZXNlbnQgbW9yZSBvZiBhIHJpc2sgb2YgbmFtaW5nIGNvbmZsaWN0cy4gVG8gYWRkIGEgZGVmYXVsdCxcbi8vIGFkZCBhIGRlc2NyaXB0aXZlIGtleSBuYW1lIHRvIHRoZSBtYXAgdGhhdCByZWZlcmVuY2VzIGEgbWFwIHRoYXQgaGFzIGFuIGBpb3NgXG4vLyBhbmQgYW4gYGFuZHJvaWRgIGtleS4gVGhlbiwgcmV0cmlldmUgdGhlIHZhbHVlIHVzaW5nIGBkZWZhdWx0KCRwcm9wZXJ0eSwgJHBsYXRmb3JtKWAsXG4vLyB3aGVyZSBwbGF0Zm9ybSBkZWZhdWx0cyB0byBpT1MuIElmIHRoZSBwcm9wZXJ0eSB5b3UgYXJlIGFkZGluZyBpcyBhbHNvIGEgdmFsaWRcbi8vIENTUyBwcm9wZXJ0eSAoaS5lLiwgZGVmYXVsdCBib3JkZXJzIG9yIGJvcmRlciByYWRpaSksIHlvdSBjYW4gZGlyZWN0bHkgaW5jbHVkZVxuLy8gdGhhdCBkZWNsYXJhdGlvbiBpbiBDU1MgdXNpbmcgdGhlIG1peGluIHZlcnNpb24gb2YgYGRlZmF1bHQoKWAuXG5cblxuXG4kREVGQVVMVFM6IChcbiAgc3BhY2luZzogMXJlbSxcbiAgYm9yZGVyLXJhZGl1czogNHB4LFxuICBsaW5lLWhlaWdodDogMS4zLFxuICBjb250cm9sLXNpemU6IHJlbSgzNCksXG4gIGNvbnRyb2wtc2l6ZS0tbGFyZ2U6IHJlbSg0MiksXG4gIGNvbnRyb2wtcGFkZGluZzogMC43NXJlbSxcbiAgYm94LXNoYWRvdzogMCAwIDRweCByZ2JhKGNvbG9yKGJsYWNrKSwgMC4zKVxuKTtcblxuXG5cbkBmdW5jdGlvbiBkZWZhdWx0KCRwcm9wZXJ0eSkge1xuICBAcmV0dXJuIG1hcC1nZXQoJERFRkFVTFRTLCAkcHJvcGVydHkpO1xufVxuXG5AbWl4aW4gZGVmYXVsdCgkcHJvcGVydHkpIHtcbiAgI3skcHJvcGVydHl9OiBkZWZhdWx0KCRwcm9wZXJ0eSk7XG59XG4iLCIkY29udGV4dDogei1pbmRleC1zdGFja2luZy1jb250ZXh0KGdsb2JhbCxcbiAgKFxuICAgIGNvbnRlbnQ6IDEwLFxuICAgIHNpZGViYXI6IDIwXG4gIClcbik7XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5KTtcbn1cblxuLnBhZ2Uge1xuICBoZWlnaHQ6IDEwMHZoO1xuICBtYXgtaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnBhZ2VfX2NvbnRlbnQsXG4ucGFnZV9fc2lkZWJhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnBhZ2VfX2NvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDEgMHB4O1xuICBAaW5jbHVkZSB6LWluZGV4KGNvbnRlbnQsIGdsb2JhbCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yKHdoaXRlKTtcblxuICA+ICoge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICB9XG59XG5cbi5wYWdlX19zaWRlYmFyIHtcbiAgQGluY2x1ZGUgei1pbmRleChzaWRlYmFyLCBnbG9iYWwpO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgICAgICAgICAgICBfX18gICAgICAgICBfX19fXyAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAgICBfX18gICAgICAgICAvX18vXFwgICAgICAgLyAgLzo6XFwgICAgICAgLyAgL1xcICAgICAgICAvX18vfFxuLy8gICAgICAvICAvOjp8ICAgICAvICAvXFwgICAgICAgIFxcICBcXDpcXCAgICAgLyAgLzovXFw6XFwgICAgIC8gIC86L18gICAgICB8ICB8Onxcbi8vICAgICAvICAvOi86fCAgICAvICAvOi8gICAgICAgICBcXCAgXFw6XFwgICAvICAvOi8gIFxcOlxcICAgLyAgLzovIC9cXCAgICAgfCAgfDp8XG4vLyAgICAvICAvOi98OnxfXyAvX18vOjpcXCAgICAgX19fX19cXF9fXFw6XFwgL19fLzovIFxcX19cXDp8IC8gIC86LyAvOi9fICBfX3xfX3w6fFxuLy8gICAvX18vOi8gfDp8IC9cXFxcX19cXC9cXDpcXF9fIC9fXy86Ojo6Ojo6OlxcXFwgIFxcOlxcIC8gIC86Ly9fXy86LyAvOi8gL1xcL19fLzo6OjpcXF9fX19cbi8vICAgXFxfX1xcLyAgfDp8LzovICAgXFwgIFxcOlxcL1xcXFwgIFxcOlxcfn5cXH5+XFwvIFxcICBcXDpcXCAgLzovIFxcICBcXDpcXC86LyAvOi8gICB+XFx+flxcOjo6Oi9cbi8vICAgICAgIHwgIHw6LzovICAgICBcXF9fXFw6Oi8gXFwgIFxcOlxcICB+fn4gICBcXCAgXFw6XFwvOi8gICBcXCAgXFw6Oi8gLzovICAgICB8fn58Onx+flxuLy8gICAgICAgfCAgfDo6LyAgICAgIC9fXy86LyAgIFxcICBcXDpcXCAgICAgICAgXFwgIFxcOjovICAgICBcXCAgXFw6XFwvOi8gICAgICB8ICB8Onxcbi8vICAgICAgIHwgIHw6LyAgICAgICBcXF9fXFwvICAgICBcXCAgXFw6XFwgICAgICAgIFxcX19cXC8gICAgICAgXFwgIFxcOjovICAgICAgIHwgIHw6fFxuLy8gICAgICAgfF9ffC8gICAgICAgICAgICAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgIHxfX3wvXG4vL1xuLy8qXG4vLyBAcGF0dGVybiBaLUluZGV4XG4vLyBAdGFnbGluZSBTdGFjayBpdCB1cCFcbi8vIEBncm91cCBIZWxwZXJcbi8vXG4vLyBgei1pbmRleGAgaXMgbWFuYWdlZCBpbiB0aGlzIGNlbnRyYWxpemVkIHN0eWxlc2hlZXQgdG8gY3JlYXRlIGEgbWFuYWdlYWJsZVxuLy8gYW5kIHNlbGYtZG9jdW1lbnRpbmcgc3lzdGVtLiBUaGUgcHJvY2VzcyB0byBhZGQgei1pbmRleGVzIGlzIGFzIGZvbGxvd3M6XG4vL1xuLy8gMS4gRm9yIGVhY2ggc3RhY2tpbmcgY29udGV4dCAoYSBzZXQgb2YgZWxlbWVudHMgZm9yIHdoaWNoIHlvdSB3b3VsZCBsaWtlXG4vLyAgICB0byBtYWludGFpbiB0aGUgc3RhY2tpbmcgb3JkZXIpLCBjcmVhdGUgYSBuZXcgbWFwIHdpdGggYSBkZXNjcmlwdGl2ZVxuLy8gICAgdmFyaWFibGUgbmFtZS5cbi8vXG4vLyAyLiBBZGQgZW50cmllcyB0byB0aGUgbWFwIGZvciBlYWNoIGVsZW1lbnQgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBjb250cm9sIHRoZVxuLy8gICAgc3RhY2tpbmcgY29udGV4dCBvZi4gVGhlIGRlbHRhIGJldHdlZW4gZWxlbWVudHMgc2hvdWxkIG5vdCBtYXR0ZXIsIG9ubHlcbi8vICAgIHRoZSBudW1lcmljIG9yZGVyLiBFbGVtZW50cyB3aXRoIGhpZ2hlciBudW1iZXJzIHdpbGwgc3RhY2sgb24gdG9wIG9mXG4vLyAgICBlbGVtZW50cyB3aXRoIGxvd2VyIHotaW5kZXhlcy5cbi8vXG4vLyAzLiBgQGluY2x1ZGUgei1pbmRleGAgaW4geW91ciBzdHlsZXNoZWV0IHdpdGggdGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCB5b3UgYXJlXG4vLyAgICBzZXR0aW5nIHotaW5kZXggZm9yIGFuZCB0aGUgbWFwIG5hbWUgZGVmaW5lZCBpbiBzdGVwIDEuXG4vL1xuLy8gNC4gUHJvZml0LlxuXG5cblxuJFpfSU5ERVhFUzogKFxuICBnbG9iYWw6IChcbiAgICBjb250ZW50OiAxMCxcbiAgICBzaWRlYmFyOiAyMFxuICApLFxuXG4gIHBhZ2U6IChcbiAgICBhdmF0YXI6IDEwLFxuICAgIHBvcG92ZXItcmVzdGluZzogMjAsXG4gICAgcG9wb3Zlci1kZWFjdGl2YXRpbmc6IDMwLFxuICAgIHBvcG92ZXItYWN0aXZlOiA0MFxuICApLFxuXG4gIGF2YXRhcjogKFxuICAgIGluaXRpYWxzOiAxMCxcbiAgICBpbWFnZTogMjBcbiAgKSxcblxuICB0YWJsZTogKFxuICAgIGNlbGw6IDEwLFxuICAgIGNlbGwtcGVyc2lzdGFudDogMjAsXG4gICAgYmFja2Ryb3A6IDMwXG4gIClcbik7XG5cblxuXG4vLypcbi8vIFRoaXMgbWl4aW4gY3JlYXRlcyBhIHotaW5kZXggZGVjbGFyYXRpb24gYmFzZWQgb24gdGhlIGVsZW1lbnQgYW5kIGNvbnRleHRcbi8vIHBhc3NlZCBpbi4gVGhlIG1peGluIHdpbGwgYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgYCRjb250ZXh0YCBhcyBhIGtleSBmcm9tXG4vLyB0aGUgZ2xvYmFsIGAkWi1JTkRFWEVTYCBtYXAsIGFuZCB3aWxsIHRoZW4gdHJ5IHRvIHJldHJpZXZlIHRoZSBgJGVsZW1lbnRgXG4vLyBmcm9tIHRoYXQgbWFwLiBJZiB0aGlzIGlzIHN1Y2Nlc3NmdWwsIHRoZSB6LWluZGV4IGRlY2xhcmF0aW9uIGlzIGluY2x1ZGVkLlxuLy9cbi8vIEBwYXJhbSB7U3RyaW5nfSAkZWxlbWVudCAtIFRoZSBlbGVtZW50IHdpdGhpbiB0aGUgc3RhY2tpbmcgY29udGV4dCB5b3UgYXJlXG4vLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpbmcgdGhlIHJ1bGUgZm9yLlxuLy8gQHBhcmFtIHtTdHJpbmd9ICRjb250ZXh0IC0gVGhlIHN0YWNraW5nIGNvbnRleHQgeW91IHdhbnQgdG8gc2VhcmNoIGluIGZvclxuLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCRlbGVtZW50YC5cblxuQG1peGluIHotaW5kZXgoJGVsZW1lbnQsICRjb250ZXh0KSB7XG4gICRpbmRleDogbWFwLWdldChtYXAtZ2V0KCRaX0lOREVYRVMsICRjb250ZXh0KSwgJGVsZW1lbnQpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIHotaW5kZXg6ICRpbmRleDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gei1pbmRleC1zdGFja2luZy1jb250ZXh0KCRuYW1lLCAkc3RhY2stb3JkZXIpIHtcbiAgJG5ldy1zdGFjay1vcmRlcjogKCAkbmFtZTogJHN0YWNrLW9yZGVyICk7XG4gICRaX0lOREVYRVM6IG1hcC1tZXJnZSgkWl9JTkRFWEVTLCAkbmV3LXN0YWNrLW9yZGVyKTtcblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCIvLyAgICAgICAgX19fICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgX19fXG4vLyAgICAgICAvICAvXFwgICAgLyAgL1xcICAgICAgICAvX18vXFwgICAgICAgIF9fXyAgICAvICAvXFxcbi8vICAgICAgLyAgLzovXyAgLyAgLzo6XFwgICAgICAgXFwgIFxcOlxcICAgICAgLyAgL1xcICAvICAvOi9fXG4vLyAgICAgLyAgLzovIC9cXC8gIC86L1xcOlxcICAgICAgIFxcICBcXDpcXCAgICAvICAvOi8gLyAgLzovIC9cXFxuLy8gICAgLyAgLzovIC86LyAgLzovICBcXDpcXCAgX19fX19cXF9fXFw6XFwgIC8gIC86LyAvICAvOi8gLzo6XFxcbi8vICAgL19fLzovIC86L19fLzovIFxcX19cXDpcXC9fXy86Ojo6Ojo6OlxcLyAgLzo6XFwvX18vOi8gLzovXFw6XFxcbi8vICAgXFwgIFxcOlxcLzovXFwgIFxcOlxcIC8gIC86L1xcICBcXDpcXH5+XFx+flxcL19fLzovXFw6XFwgIFxcOlxcLzovfi86L1xuLy8gICAgXFwgIFxcOjovICBcXCAgXFw6XFwgIC86LyAgXFwgIFxcOlxcICB+fn5cXF9fXFwvICBcXDpcXCAgXFw6Oi8gLzovXG4vLyAgICAgXFwgIFxcOlxcICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDpcXCAgICAgICAgIFxcICBcXDpcXF9fXFwvIC86L1xuLy8gICAgICBcXCAgXFw6XFwgICBcXCAgXFw6Oi8gICAgICBcXCAgXFw6XFwgICAgICAgICBcXF9fXFwvIC9fXy86L1xuLy8gICAgICAgXFxfX1xcLyAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgICAgICAgICAgICAgXFxfX1xcL1xuXG5AbWl4aW4gdHlwZS0tZGVmYXVsdC1mb250LWZhbWlseSB7XG4gIGZvbnQtZmFtaWx5OiBTb3VyY2UgU2FucyBQcm8sIEhlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG5AbWl4aW4gdHlwZS0tbW9ub3NwYWNlLWZvbnQtZmFtaWx5IHtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25vc3BhY2U7XG59XG5cbmJvZHkge1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICBjb2xvcjogY29sb3Ioc2xhdGUpO1xuICBAaW5jbHVkZSB0eXBlLS1kZWZhdWx0LWZvbnQtZmFtaWx5O1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIEBpbmNsdWRlIHR5cGUtLWRlZmF1bHQtZm9udC1mYW1pbHk7XG59XG5cblxuXG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIC50eXBlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbkBtaXhpbiB0eXBlLS1oZWFkaW5nLTEge1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICBAaW5jbHVkZSBmb250LXNpemUoaGVhZGluZy0xKTtcbn1cblxuQG1peGluIHR5cGUtLWhlYWRpbmctMiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGhlYWRpbmctMik7XG59XG5cbkBtaXhpbiB0eXBlLS1oZWFkaW5nLTMge1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICBAaW5jbHVkZSBmb250LXNpemUoaGVhZGluZy0zKTtcbn1cblxuQG1peGluIHR5cGUtLWhlYWRpbmctNCB7XG4gIG1hcmdpbjogZGVmYXVsdChzcGFjaW5nKSBhdXRvIGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGhlYWRpbmctNCk7XG59XG5cbkBtaXhpbiB0eXBlLS1oZWFkaW5nLTUge1xuICBtYXJnaW46IGRlZmF1bHQoc3BhY2luZykgYXV0byBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VzdCk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShoZWFkaW5nLTUpO1xufVxuXG5AbWl4aW4gdHlwZS0tcGFyYWdyYXBoIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKHBhcmFncmFwaCk7XG4gIEBpbmNsdWRlIGRlZmF1bHQobGluZS1oZWlnaHQpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBjb2xvcjogdWktY29sb3IoYmxhY2spO1xuXG4gICsgcCB7XG4gICAgbWFyZ2luLXRvcDogKDAuNzUgKiBkZWZhdWx0KHNwYWNpbmcpKTtcbiAgfVxuXG4gID4gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogdWktY29sb3IoYmx1ZSwgZGFya2VyKTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB1aS1jb2xvcihibHVlLCBkYXJrKTtcbiAgICB9XG5cbiAgICA+IGNvZGUge1xuICAgICAgY29sb3I6IHVpLWNvbG9yKGJsdWUsIGRhcmtlcik7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgodWktY29sb3IoZ3JheSwgbGlnaHQpLCB1aS1jb2xvcihibHVlKSwgODAlKTtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSh1aS1jb2xvcihibHVlLCBkYXJrZXIpLCAwLjE1KTtcbiAgICB9XG4gIH1cblxuICBjb2RlIHtcbiAgICBAaW5jbHVkZSB0eXBlLS1tb25vc3BhY2UtZm9udC1mYW1pbHk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAuMDVlbSAwLjI1ZW07XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5LCBsaWdodCk7XG4gICAgY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHVpLWNvbG9yKGdyYXkpO1xuICAgIEBpbmNsdWRlIGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIHR5cGUtLXBhcmFncmFwaC1zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShwYXJhZ3JhcGgtc21hbGwpO1xufVxuXG5AbWl4aW4gdHlwZS0tYWZ0ZXItcGFyYWdyYXBoIHtcbiAgLnR5cGUtLXBhcmFncmFwaCArICYsXG4gIC51c2VyLXR5cGUgKyAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5cblxuLnR5cGUtLWhlYWRpbmctMSB7IEBpbmNsdWRlIHR5cGUtLWhlYWRpbmctMTsgfVxuLnR5cGUtLWhlYWRpbmctMiB7IEBpbmNsdWRlIHR5cGUtLWhlYWRpbmctMjsgfVxuLnR5cGUtLWhlYWRpbmctMyB7IEBpbmNsdWRlIHR5cGUtLWhlYWRpbmctMzsgfVxuLnR5cGUtLWhlYWRpbmctNCB7XG4gIEBpbmNsdWRlIHR5cGUtLWhlYWRpbmctNDtcbn1cblxuLnR5cGUtLWhlYWRpbmctNSB7XG4gIEBpbmNsdWRlIHR5cGUtLWhlYWRpbmctNTtcblxuICAudHlwZS0taGVhZGluZy00ICsgJiB7XG4gICAgbWFyZ2luLXRvcDogaGFsZihkZWZhdWx0KHNwYWNpbmcpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHR5cGUtLWFmdGVyLXBhcmFncmFwaCB7XG4gICAgbWFyZ2luLXRvcDogKDEuNSAqIGRlZmF1bHQoc3BhY2luZykpO1xuICB9XG59XG5cbi50eXBlLS1oZWFkaW5nLWJvcmRlcmVkIHtcbiAgcGFkZGluZy1ib3R0b206IGRlZmF1bHQoc3BhY2luZyk7XG4gIG1hcmdpbi1ib3R0b206IG11bHRpcGx5KGRlZmF1bHQoc3BhY2luZyksIDEuMyk7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB1aS1jb2xvcihncmF5KTtcblxuICArIC5zZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiBuZWdhdGl2ZShkZWZhdWx0KHNwYWNpbmcpKTtcbiAgfVxufVxuXG4udHlwZS0tcGFyYWdyYXBoIHsgQGluY2x1ZGUgdHlwZS0tcGFyYWdyYXBoOyB9XG4udHlwZS0tcGFyYWdyYXBoLXNtYWxsIHsgQGluY2x1ZGUgdHlwZS0tcGFyYWdyYXBoLXNtYWxsOyB9XG5cbi50eXBlLWNvbnRhaW5lciB7XG4gIGgxIHsgQGluY2x1ZGUgdHlwZS0taGVhZGluZy0xOyB9XG4gIGgyIHsgQGluY2x1ZGUgdHlwZS0taGVhZGluZy0yOyB9XG4gIGgzIHsgQGluY2x1ZGUgdHlwZS0taGVhZGluZy0zOyB9XG4gIGg0IHsgQGluY2x1ZGUgdHlwZS0taGVhZGluZy00OyB9XG4gIGg1IHsgQGluY2x1ZGUgdHlwZS0taGVhZGluZy01OyB9XG5cbiAgcCB7IEBpbmNsdWRlIHR5cGUtLXBhcmFncmFwaDsgfVxufVxuXG4udHlwZS1jb250YWluZXItLXNtYWxsIHtcbiAgcCB7IEBpbmNsdWRlIHR5cGUtLXBhcmFncmFwaC1zbWFsbDsgfVxufVxuXG5cblxuLnR5cGUtLWRpc3BsYXkge1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi50eXBlLS1tYXJnaW4tYm90dG9tIHtcbiAgbWFyZ2luLWJvdHRvbTogZGVmYXVsdChzcGFjaW5nKTtcbn1cblxuLnR5cGUtLXN1YmR1ZWQge1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFyayk7XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuLnR5cGUtLWNvZGUge1xuICBAaW5jbHVkZSB0eXBlLS1tb25vc3BhY2UtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogMC45NWVtO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdWktY29sb3IoYmx1ZSk7XG59XG4iLCIvLyAgICAgICAgX19fICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAvICAvXFwgICAgICAgIC9fXy9cXCAgICAgICAgX19fICAgICAgICAgICAgICAgIC8gIC9cXCAgICAgIF9fXyAgICAgICAgLyAgL1xcICAgICAgICAvICAvXFxcbi8vICAgICAgLyAgLzovXyAgLyAgLzo6XFwgICAgICAgXFwgIFxcOlxcICAgICAgLyAgL1xcICAgICAgICAgICAgICAvICAvOi9fICAgIC8gIC9cXCAgICAgIC8gIC86OnwgICAgICAvICAvOi9fXG4vLyAgICAgLyAgLzovIC9cXC8gIC86L1xcOlxcICAgICAgIFxcICBcXDpcXCAgICAvICAvOi8gICAgICAgICAgICAgLyAgLzovIC9cXCAgLyAgLzovICAgICAvICAvOi86fCAgICAgLyAgLzovIC9cXFxuLy8gICAgLyAgLzovIC86LyAgLzovICBcXDpcXCAgX19fX19cXF9fXFw6XFwgIC8gIC86LyAgICAgICAgICAgICAvICAvOi8gLzo6XFwvX18vOjpcXCAgICAvICAvOi98OnxfXyAgLyAgLzovIC86L19cbi8vICAgL19fLzovIC86L19fLzovIFxcX19cXDpcXC9fXy86Ojo6Ojo6OlxcLyAgLzo6XFwgICAgICAgICAgICAvX18vOi8gLzovXFw6XFxfX1xcL1xcOlxcX18vX18vOi8gfDp8IC9cXC9fXy86LyAvOi8gL1xcXG4vLyAgIFxcICBcXDpcXC86L1xcICBcXDpcXCAvICAvOi9cXCAgXFw6XFx+flxcfn5cXC9fXy86L1xcOlxcICAgICAgICAgICBcXCAgXFw6XFwvOi9+LzovICBcXCAgXFw6XFwvXFxfX1xcLyAgfDp8LzovXFwgIFxcOlxcLzovIC86L1xuLy8gICAgXFwgIFxcOjovICBcXCAgXFw6XFwgIC86LyAgXFwgIFxcOlxcICB+fn5cXF9fXFwvICBcXDpcXCAgICAgICAgICAgXFwgIFxcOjovIC86LyAgICBcXF9fXFw6Oi8gICB8ICB8Oi86LyAgXFwgIFxcOjovIC86L1xuLy8gICAgIFxcICBcXDpcXCAgIFxcICBcXDpcXC86LyAgICBcXCAgXFw6XFwgICAgICAgICBcXCAgXFw6XFwgICAgICAgICAgIFxcX19cXC8gLzovICAgICAvX18vOi8gICAgfCAgfDo6LyAgICBcXCAgXFw6XFwvOi9cbi8vICAgICAgXFwgIFxcOlxcICAgXFwgIFxcOjovICAgICAgXFwgIFxcOlxcICAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAvX18vOi8gICAgICBcXF9fXFwvICAgICB8ICB8Oi8gICAgICBcXCAgXFw6Oi9cbi8vICAgICAgIFxcX19cXC8gICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgIHxfX3wvICAgICAgICBcXF9fXFwvXG4vL1xuLy8qXG4vLyBAcGF0dGVybiBGb250IFNpemVzXG4vLyBAZ3JvdXAgSGVscGVyXG4vL1xuLy8gVGhlIHN0eWxlc2hlZXQgZXhpc3RzIGFzIGEgc2luZ2xlIHBsYWNlIHRvIG1hbmFnZSBhbGwgZm9udCBzaXplcy4gVG8gdXNlXG4vLyBhIGZvbnQgc2l6ZSBpbiB5b3VyIHN0eWxlc2hlZXQsIGZvbGxvdyB0aGlzIHByb2NlZHVyZTpcbi8vXG4vLyAxLiBBZGQgYSB3ZWxsLW5hbWVkIGVudHJ5IHRvIHRoZSBgJEZPTlQtU0laRVNgIG1hcCB3aXRoIHRoZSB2YWx1ZSBzZXQgdG9cbi8vICAgIHRoZSBmb250IHNpemUgZm9yIHRoYXQgZWxlbWVudC5cbi8vXG4vLyAyLiBJZiB5b3Ugd2lzaCB0byBpbmNsdWRlIGEgYGZvbnQtc2l6ZWAgZGVjbGFyYXRpb24gaW4geW91ciBzdHlsZXNoZWV0LFxuLy8gICAgYEBpbmNsdWRlIGZvbnQtc2l6ZSgpYCwgcGFzc2luZyBpdCB0aGUgbmFtZSBvZiB0aGUgY29tcG9uZW50IHRvIHJldHJpZXZlXG4vLyAgICB0aGUgZm9udC1zaXplIGZvci5cbi8vXG4vLyAzLiBSZXRyaWV2aW5nIHRoZSBhY3R1YWwgZm9udC1zaXplIGRpbWVuc2lvbiAoZm9yIGV4YW1wbGUsIHRvIGJlIHVzZWQgaW4gYVxuLy8gICAgY2FsY3VsYXRpb24gdG8gZGV0ZXJtaW5lIG5lY2Vzc2FyeSBwYWRkaW5nKSBzaG91bGQgYmUgZG9uZSBieSBwYXNzaW5nIHRoZVxuLy8gICAgc2FtZSBhcmd1bWVudCBkaXNjdXNzZWQgYWJvdmUgdG8gdGhlIGBmb250LXNpemVgICpmdW5jdGlvbiouXG5cblxuXG4kRk9OVF9TSVpFUzogKFxuICBoZWFkaW5nLTE6IHJlbSgzNiksXG4gIGhlYWRpbmctMjogcmVtKDMwKSxcbiAgaGVhZGluZy0zOiByZW0oMjQpLFxuICBoZWFkaW5nLTQ6IHJlbSgxNCksXG4gIGhlYWRpbmctNTogcmVtKDIwKSxcbiAgbGFiZWw6IHJlbSgxNiksXG4gIHBhcmFncmFwaDogcmVtKDIwKSxcbiAgcGFyYWdyYXBoLXNtYWxsOiByZW0oMTgpLFxuICBhdmF0YXI6IHJlbSgyMCksXG4gIGJhZGdlOiAwLjc1ZW0sXG4gIGJhZGdlLS1zdGFuZGFsb25lOiByZW0oMTYpLFxuICBjb2RlLWJsb2NrOiByZW0oMTYpLFxuICBjb2RlLWJsb2NrLS1jb25kZW5zZWQ6IHJlbSgxNCksXG4gIGxpc3QtaGVhZGluZzogcmVtKDIwKSxcbiAgc2VsZWN0OiByZW0oMTYpLFxuICB0YWJsaXN0OiByZW0oMTYpLFxuICB0YWJsaXN0LS1sYXJnZTogcmVtKDI0KSxcbiAgY29udHJvbDogcmVtKDE4KVxuKTtcblxuXG5cbi8vKlxuLy8gUmV0cml2ZXMgdGhlIGZvbnQtc2l6ZSBmb3IgYW4gZWxlbWVudCBkZWNsYXJlZCBpbiB0aGUgZ2xvYmFsXG4vLyBgJEZPTlRfU0laRVNgIG1hcC4gVGhpcyB3aWxsIG5vdCBhY3R1YWxseSBhZGQgYSBDU1MgcnVsZSDigJTCoGlmIHlvdVxuLy8gd291bGQgbGlrZSB0aGUgYWN0dWFsIGBmb250LXNpemVgIHJ1bGUgdG8gYmUgcHJpbnRlZCwgdXNlIHRoZVxuLy8gYEBtaXhpbmAgdmVyc2lvbi4gVXNlIHRoaXMgZnVuY3Rpb24gd2hlbiB5b3Ugd2FudCB0byByZXRyaXZlIHRoZSBmb250XG4vLyBzaXplIGZvciB1c2UgaW4gb3RoZXIgY2FsY3VsYXRpb25zLlxuLy9cbi8vIEBwYXJhbSB7U3RyaW5nfSAkZWxlbWVudCAtIFRoZSBlbGVtZW50IHdob3NlIGZvbnQtc2l6ZSBzaG91bGQgYmUgcmV0cmlldmVkLlxuLy8gQHJldHVybnMge051bWJlcn1cblxuQGZ1bmN0aW9uIGZvbnQtc2l6ZSgkZWxlbWVudCkge1xuICBAcmV0dXJuIG1hcC1nZXQoJEZPTlQtU0laRVMsICRlbGVtZW50KTtcbn1cblxuXG5cbi8vKlxuLy8gUmV0cml2ZXMgdGhlIGZvbnQtc2l6ZSBmb3IgYW4gZWxlbWVudCBkZWNsYXJlZCBpbiB0aGUgZ2xvYmFsXG4vLyBgJEZPTlRfU0laRVNgIG1hcCAqKmFuZCoqIHByaW50cyB0aGUgYGZvbnQtc2l6ZWAgcnVsZS5cbi8vXG4vLyBAcGFyYW0ge1N0cmluZ30gJGVsZW1lbnQgLSBUaGUgZWxlbWVudCB3aG9zZSBmb250LXNpemUgc2hvdWxkIGJlIHJldHJpZXZlZC5cbi8vXG4vLyBAZXhhbXBsZVxuLy8gLnR5cGUtLWhlYWRpbmctMSB7XG4vLyAgIEBpbmNsdWRlIGZvbnQtc2l6ZShoZWFkaW5nLTEpOyAvLyA9PiBmb250LXNpemU6IDJyZW07XG4vLyB9XG5cbkBtaXhpbiBmb250LXNpemUoJGVsZW1lbnQpIHtcbiAgZm9udC1zaXplOiBmb250LXNpemUoJGVsZW1lbnQpO1xufVxuIiwiLy8gICAgICAgIF9fXyAgICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgX19fICAgICAgICAgIF9fX1xuLy8gICAgICAgLyAgL1xcICAgICAgICBfX18gICAgICAgIC8gIC9cXCAgICAgICAgX19fICAgIC8gIC9cXCAgICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86OlxcICAgICAgL19fL1xcICAgICAgLyAgLzo6XFwgICAgICAvICAvXFwgIC8gIC86OlxcICAgICAgLyAgLzo6XFxcbi8vICAgICAvICAvOi9cXDpcXCAgICAgXFwgIFxcOlxcICAgIC8gIC86L1xcOlxcICAgIC8gIC86LyAvICAvOi9cXDpcXCAgICAvICAvOi9cXDpcXFxuLy8gICAgLyAgLzovfi86OlxcICAgICBcXCAgXFw6XFwgIC8gIC86L34vOjpcXCAgLyAgLzovIC8gIC86L34vOjpcXCAgLyAgLzovfi86L1xuLy8gICAvX18vOi8gLzovXFw6XFxfX18gIFxcX19cXDpcXC9fXy86LyAvOi9cXDpcXC8gIC86OlxcL19fLzovIC86L1xcOlxcL19fLzovIC86L19fX1xuLy8gICBcXCAgXFw6XFwvOi9fX1xcL19fL1xcIHwgIHw6fFxcICBcXDpcXC86L19fXFwvX18vOi9cXDpcXCAgXFw6XFwvOi9fX1xcL1xcICBcXDpcXC86Ojo6Oi9cbi8vICAgIFxcICBcXDo6LyAgICBcXCAgXFw6XFx8ICB8OnwgXFwgIFxcOjovICAgIFxcX19cXC8gIFxcOlxcICBcXDo6LyAgICAgIFxcICBcXDo6L35+fn5cbi8vICAgICBcXCAgXFw6XFwgICAgIFxcICBcXDpcXF9ffDp8ICBcXCAgXFw6XFwgICAgICAgICBcXCAgXFw6XFwgIFxcOlxcICAgICAgIFxcICBcXDpcXFxuLy8gICAgICBcXCAgXFw6XFwgICAgIFxcX19cXDo6OjovICAgIFxcICBcXDpcXCAgICAgICAgIFxcX19cXC9cXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcXG4vLyAgICAgICBcXF9fXFwvICAgICAgICAgfn5+fiAgICAgIFxcX19cXC8gICAgICAgICAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gQXZhdGFyXG4vL1xuLy8gQSBzbWFsbCBpbWFnZSByZXByZXNlbnRpbmcgc29tZW9uZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcm9qZWN0LiBUaGUgc2NyaXB0XG4vLyBwYXJ0IG9mIHRoaXMgY29tcG9uZW50IGFsbG93cyBpdCB0byBmZXRjaCBhdmF0YXIgaW1hZ2VzIGZyb20gR2l0aHViLCBUd2l0dGVyLFxuLy8gb3IgR3JhdmF0YXIsIGRlcGVuZGluZyBvbiB0aGUgaW5mb3JtYXRpb24gcHJvdmlkZWQuIElmIG5vIGltYWdlcyBhcmUgZm91bmRcbi8vIGZvciB0aGUgYXZhdGFyLCBpdCB3aWxsIGZhbGwgYmFjayB0byBkaXNwbGF5aW5nIHRoZWlyIGluaXRpYWxzLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG4vLypcbi8vIFRoZSBzaXplIChoZWlnaHQgYW5kIHdpZHRoKSBvZiBhbiBgYXZhdGFyYC5cbi8vIEB0eXBlIExlbmd0aFxuXG4kYXZhdGFyLS1zaXplOiAzcmVtO1xuXG4vLypcbi8vIFRoZSBtYXJnaW4gdGhhdCBzaG91bGQgYXBwZWFyIGJldHdlZW4gdHdvIGBhdmF0YXJgcyAoaW5jbHVkaW5nIHRob3NlIG9uIGFcbi8vIG5ldyBsaW5lKS5cbi8vIEB0eXBlIExlbmd0aFxuXG4kYXZhdGFyLS1zcGFjaW5nOiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuXG4vLypcbi8vIFRoZSBjb3JlIGNvbnRhaW5lciBmb3IgYSBzaW5nbGUgYXZhdGFyLiBBbiBhdmF0YXIgc3VwcG9ydHMgZmV0Y2hpbmcgb2YgdGhlXG4vLyBiYWNrZ3JvdW5kIGltYWdlIHRocm91Z2ggZWl0aGVyIGEgW0dpdGh1Yl0oaHR0cDovL2dpdGh1Yi5jb20pIHByb2ZpbGUgbmFtZSxcbi8vIGEgW1R3aXR0ZXJdKGh0dHA6Ly90d2l0dGVyLmNvbSkgdXNlcm5hbWUsIG9yIGFuIGVtYWlsIGFkZHJlc3MgdGhhdCBpc1xuLy8gYXNzb2NpYXRlZCB3aXRoIGEgW0dyYXZhdGFyXShodHRwOi8vZ3JhdmF0YXIuY29tKSBhY2NvdW50LiBJZiBhbnkgb2YgdGhlXG4vLyBhYm92ZSBhcmUgZ2l2ZW4sIGNsaWNraW5nIG9uIHRoZSBhdmF0YXIgd2lsbCBvcGVuIGEgdGFiIHdpdGggdGhlIHJlbGV2YW50XG4vLyBwcm9maWxlIHBhZ2Ugb3BlbiAob3IsIGNvbXBvc2UgYSBuZXcgZW1haWwgaWYgZW1haWwgd2FzIHRoZSBwcm92aWRlZFxuLy8gaWRlbnRpZmllcikuIElmIG5vbmUgb2YgdGhlIGFib3ZlIGFyZSBnaXZlbiwgdGhlIGluaXRpYWxzIG9mIHRoZSB1c2VyJ3MgbmFtZVxuLy8gd2lsbCBiZSBzaG93bi5cbi8vXG4vLyBAaGVscGVyXG4vLyA8JSBkb2Nrc19jb21wb25lbnQoXCJhdmF0YXI6Y29udGFpbmVyXCIpIGRvICU+XG4vLyAgIDwlPSBkb2Nrc19jb21wb25lbnQoXCJhdmF0YXJcIiwgYXV0aG9yOiBPcGVuU3RydWN0Lm5ldyhuYW1lOiBcIkNocmlzIFNhdXZlXCIsIGdpdGh1YjogXCJsZW1vbm1hZGVcIikpICU+XG4vLyA8JSBlbmQgJT5cblxuLmF2YXRhciB7XG4gIC8vIHBvc2l0aW9uXG4gIEBpbmNsdWRlIHotaW5kZXgoYXZhdGFyLCBwYWdlKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJveCBtb2RlbFxuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC8vIGJhY2tkcm9wXG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKGdyYXktbGlnaHQpO1xuICBib3JkZXItcmFkaXVzOiBkZWZhdWx0KGJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC8vIHR5cGVcbiAgQGluY2x1ZGUgZm9udC1zaXplKGF2YXRhcik7XG59XG5cbi8vKlxuLy8gQSBjb250YWluZXIgdGhhdCBzaG93cyB0aGUgaW5pdGFscyBvZiB0aGUgdXNlci4gVGhpcyB3aWxsIGFsd2F5cyBiZSBwcmVzZW50XG4vLyBzbyB0aGF0IGl0IGlzIHZpc2libGUgaW1tZWRpYXRlbHkgb24gcGFnZSBsb2FkLiBUaGUgYXZhdGFyIGltYWdlLCB3aGljaCBpc1xuLy8gZmV0Y2hlZCBieSBKYXZhU2NyaXB0LCB3aWxsIGJlIGZhZGVkIGluIG92ZXIgdG9wIG9mIHRoaXMgc3ViY29tcG9uZW50LCBpZlxuLy8gYXZhaWxhYmxlLlxuLy9cbi8vIEV2ZXJ5IGluaXRpYWwgb2YgdGhlIHBhc3NlZCBuYW1lIHdpbGwgYmUgc2hvd24uIFRoZXJlIGlzIGVub3VnaCBzcGFjZSBmb3Jcbi8vIDLigJMzIGluaXRpYWxzLCBidXQgYW55IG1vcmUgdGhhbiB0aGlzIHdpbGwgb3ZlcmZsb3cgdGhlIGF2YXRhci4gQXMgc3VjaCxcbi8vIHBsZWFzZSByZXN0cmljdCBuYW1lcyB0byBmaXJzdCBhbmQgbGFzdCBvciBmaXJzdCwgbWlkZGxlLCBhbmQgbGFzdC5cblxuLmF2YXRhcl9faW5pdGlhbHMge1xuICAvLyBwb3NpdGlvblxuICBAaW5jbHVkZSB6LWluZGV4KGluaXRpYWxzLCBhdmF0YXIpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlOyBsZWZ0OiAwO1xuXG4gIC8vIGJveCBtb2RlbFxuICB3aWR0aDogMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG4gIC8vIGJhY2tkcm9wXG4gIGNvbG9yOiBjb2xvcihncmF5KTtcblxuICAvLyB0eXBlXG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLypcbi8vIFRoZSBjb250YWluZXIgZm9yIHRoZSBhdmF0YXIgaW1hZ2UuIFRoZSBpbWFnZSB3aWxsIGJlIHNldCBieSBKYXZhU2NyaXB0IGFzXG4vLyBhIGJhY2tncm91bmQgaW1hZ2Ugb24gdGhpcyBzdWJjb21wb25lbnQsIHNvIGlmIG5vIGltYWdlIGlzIHByb3ZpZGVkIHRoaXNcbi8vIGNvbnRhaW5lciB3aWxsIGVmZmVjdGl2ZWx5IGJlIGludmlzaWJsZS4gT25jZSB0aGUgYmFja2dyb3VuZCBpbWFnZSBpc1xuLy8gZmV0Y2hlZCAod2hpY2ggd2lsbCBiZSBkb25lIHdpdGggYSBzbGlnaHQgZGVsYXkgdG8gcHJldmVudCB0b28gbXVjaCBmcm9tXG4vLyBoYXBwZW5pbmcgb24gcGFnZSBsb2FkKSwgaXQgaXMgZmFkZWQgaW50byBwbGFjZSB1c2luZyB0aGVcbi8vIGBhdmF0YXJfX2ltYWdlLS1pcy12aXNpYmxlYCBzdGF0ZS5cblxuLmF2YXRhcl9faW1hZ2Uge1xuICAvLyBwb3NpdGlvblxuICBAaW5jbHVkZSB6LWluZGV4KGltYWdlLCBhdmF0YXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gYm94IG1vZGVsXG4gIGhlaWdodDogJGF2YXRhci0tc2l6ZTtcbiAgd2lkdGg6ICRhdmF0YXItLXNpemU7XG5cbiAgLy8gYmFja2Ryb3BcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vKlxuLy8gVGhlIHZhcmlhdGlvbiB0aGF0IGNhdXNlcyB0aGUgaW1hZ2UgdG8gYmUgZmFkZWQgaW50byB2aWV3LlxuLy9cbi8vIEBkZW1vX3R5cGUgbm9uZVxuLy8gQHNldF9ieSBBdmF0YXIjc2hvd19pbWFnZVxuXG4uYXZhdGFyX19pbWFnZS0taXMtdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8vKlxuLy8gQ3JlYXRlcyB0aGUgcnVsZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gcmVzdHJpY3QgYW4gYGF2YXRhcl9fY29udGFpbmVyYCB0b1xuLy8gYSBwYXJ0aWN1bGFyIG51bWJlciBvZiBgYXZhdGFyYHMgcGVyIGxpbmUuXG4vL1xuLy8gQHBhcmFtIHtOdW1iZXJ9ICRuIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGBhdmF0YXJgcyBhbGxvd2VkIHBlciBsaW5lLlxuXG5AbWl4aW4gYXZhdGFyLS1yZXN0cmljdC10by1uLWF2YXRhcnMoJG4pIHtcbiAgbWF4LXdpZHRoOiAoKCRuICogJGF2YXRhci0tc2l6ZSkgKyAoJG4gKiAkYXZhdGFyLS1zcGFjaW5nKSk7XG59XG5cbi8vKlxuLy8gVGhlIGNvbnRhaW5lciBhcm91bmQgYSBzZXQgb2YgYXZhdGFycy4gVGhpcyBjb250YWluZXIgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXRcbi8vIGVsaW1pbmF0ZXMgdGhlIGV4Y2VzcyBtYXJnaW4gYmVsb3cgYW5kIHRvIHRoZSByaWdodCBvZiBgYXZhdGFyYHMgb24gdGhlXG4vLyBvdXRzaWRlIGVkZ2VzIG9mIHRoZSBjb250YWluZXIsIGJ1dCBzdGlsbCBhbGxvd3MgdGhlbSB0byBiZSBwcm9wZXJseSBzcGFjZWRcbi8vIG91dCBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkuIFRoaXMgaXMgYWNjb21wbGlzaGVkIHVzaW5nIG5lZ2F0aXZlIG1hcmdpblxuLy8gb24gdGhlIGJvdHRvbSBhbmQgcmlnaHQgdG8gb2Zmc2V0IHRoZSBtYXJnaW4gb2YgdGhlIGNvbnRhaW5lZCBgYXZhdGFyYHMuXG4vL1xuLy8gVGhpcyBjb250YWluZXIgYWxsb3dzIHRocmVlIGF2YXRhcnMgc2lkZS1ieS1zaWRlLCB3aXRoIGFkZGl0aW9uYWwgYXZhdGFyc1xuLy8gYnJlYWtpbmcgb250byBhIG5ldyBsaW5lLiBJZiB5b3Ugb25seSBuZWVkIGEgc2luZ2xlIGF2YXRhciwgdGhpcyBjb250YWluZXJcbi8vIGlzIG5vdCBuZWNlc3NhcnkuXG4vL1xuLy8gWW91IGNhbiBjcmVhdGUgdGhpcyBjb21wb25lbnQgdXNpbmcgdGhlIGBcImF2YXRhcjpjb250YWluZXJcImAgaGVscGVyLiB0aGlzXG4vLyBoZWxwZXIgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjb250YWluZXI6XG4vL1xuLy8gYGBgZXJiX2RlbW9cbi8vIDxkaXY+XG4vLyAgIDwlIGRvY2tzX2NvbXBvbmVudChcImF2YXRhcjpjb250YWluZXJcIikgZG8gJT5cbi8vICAgICA8JSA0LnRpbWVzIGRvICU+XG4vLyAgICAgICA8JT0gZG9ja3NfY29tcG9uZW50KFwiYXZhdGFyXCIsIGF1dGhvcjogT3BlblN0cnVjdC5uZXcobmFtZTogXCJDaHJpcyBTYXV2ZVwiLCBnaXRodWI6IFwibGVtb25tYWRlXCIpKSAlPlxuLy8gICAgIDwlIGVuZCAlPlxuLy8gICA8JSBlbmQgJT5cbi8vIDwvZGl2PlxuLy9cbi8vIDxkaXY+XG4vLyAgIDwlIGRvY2tzX2NvbXBvbmVudChcImF2YXRhcjpjb250YWluZXJcIiwgc2l6ZTogOmxhcmdlKSBkbyAlPlxuLy8gICAgIDwlIDQudGltZXMgZG8gJT5cbi8vICAgICAgIDwlPSBkb2Nrc19jb21wb25lbnQoXCJhdmF0YXJcIiwgYXV0aG9yOiBPcGVuU3RydWN0Lm5ldyhuYW1lOiBcIkNocmlzIFNhdXZlXCIsIGdpdGh1YjogXCJsZW1vbm1hZGVcIikpICU+XG4vLyAgICAgPCUgZW5kICU+XG4vLyAgIDwlIGVuZCAlPlxuLy8gPC9kaXY+XG4vLyBgYGBcblxuLmF2YXRhcl9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiBuZWdhdGl2ZSgkYXZhdGFyLS1zcGFjaW5nKSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiBuZWdhdGl2ZSgkYXZhdGFyLS1zcGFjaW5nKSAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBhdmF0YXItLXJlc3RyaWN0LXRvLW4tYXZhdGFycygzKTtcblxuICA+IC5hdmF0YXIge1xuICAgIG1hcmdpbi1yaWdodDogJGF2YXRhci0tc3BhY2luZztcbiAgICBtYXJnaW4tYm90dG9tOiAkYXZhdGFyLS1zcGFjaW5nO1xuICB9XG59XG5cbi8vKlxuLy8gQSBjb250YWluZXIgdGhhdCBjYW4gaG9sZCBtb3JlIGBhdmF0YXJgcyBvbiBhIHNpbmdsZSBsaW5lIChmb3VyLCBpbnN0ZWFkIG9mXG4vLyB0aGUgYmFzZSB0aHJlZSkuIFVzZSB0aGlzIGZvciBzaXR1YXRpb25zIGluIHdoaWNoIHlvdSBoYXZlIG1vcmUgcm9vbVxuLy8gYXZhaWxhYmxlIGZvciBhbmNpbGxhcnkgaW5mb3JtYXRpb24gbGlrZSBjb250cmlidXRvciBpbmZvcm1hdGlvbi5cbi8vXG4vLyBAc2V0X2J5IDpzaXplICg6bGFyZ2UpXG5cbi5hdmF0YXJfX2NvbnRhaW5lci0tbGFyZ2Uge1xuICBAaW5jbHVkZSBhdmF0YXItLXJlc3RyaWN0LXRvLW4tYXZhdGFycyg0KTtcbn1cbiIsIi8vICAgICAgICAgICAgICAgICAgICBfX18gICAgICAgIF9fX19fICAgICAgICBfX18gICAgICAgICAgX19fXG4vLyAgICAgICBfX19fXyAgICAgICAvICAvXFwgICAgICAvICAvOjpcXCAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86OlxcICAgICAvICAvOjpcXCAgICAvICAvOi9cXDpcXCAgICAvICAvOi9fICAgICAgLyAgLzovX1xuLy8gICAgIC8gIC86L1xcOlxcICAgLyAgLzovXFw6XFwgIC8gIC86LyAgXFw6XFwgIC8gIC86LyAvXFwgICAgLyAgLzovIC9cXFxuLy8gICAgLyAgLzovfi86OlxcIC8gIC86L34vOjpcXC9fXy86LyBcXF9fXFw6fC8gIC86L18vOjpcXCAgLyAgLzovIC86L19cbi8vICAgL19fLzovIC86L1xcOi9fXy86LyAvOi9cXDpcXCAgXFw6XFwgLyAgLzovX18vOi9fX1xcL1xcOlxcL19fLzovIC86LyAvXFxcbi8vICAgXFwgIFxcOlxcLzovfi86fCAgXFw6XFwvOi9fX1xcL1xcICBcXDpcXCAgLzovXFwgIFxcOlxcIC9+fi86L1xcICBcXDpcXC86LyAvOi9cbi8vICAgIFxcICBcXDo6LyAvOi8gXFwgIFxcOjovICAgICAgXFwgIFxcOlxcLzovICBcXCAgXFw6XFwgIC86LyAgXFwgIFxcOjovIC86L1xuLy8gICAgIFxcICBcXDpcXC86LyAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6Oi8gICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDpcXC86L1xuLy8gICAgICBcXCAgXFw6Oi8gICAgIFxcICBcXDpcXCAgICAgICBcXF9fXFwvICAgICAgXFwgIFxcOjovICAgICAgXFwgIFxcOjovXG4vLyAgICAgICBcXF9fXFwvICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcL1xuXG4vLypcbi8vIEBwYXR0ZXJuIEJhZGdlXG4vL1xuLy8gQSBiYWRnZSBpcyBhIHNtYWxsIGNodW5rIG9mIHRleHQgaW4gYSBjb2xvcmVkIGJveCB0aGF0IGRlbm90ZXMgYSBwYXJ0aWN1bGFyXG4vLyBhdHRyaWJ1dGUgYWJvdXQgdGhlIGludGVyZmFjZSBlbGVtZW50IHRvIHdoaWNoIGl0IGlzIGF0dGFjaGVkLiBXaGVuXG4vLyBhZGRpdGlvbmFsIGV4cGxhbmF0b3J5IHRleHQgaXMgcmVxdWlyZWQsIHVzZSBhIGBub3RpY2VgIGluc3RlYWQg4oCUwqBiYWRnZXNcbi8vIHNob3VsZCBvbmx5IGV2ZXIgYmUgb25lIHdvcmQgaW4gbGVuZ3RoLiBJdCBpcyBhcHByb3ByaWF0ZSB0byBoYXZlIG11bHRpcGxlXG4vLyBiYWRnZXMgYXR0YWNoZWQgdG8gYSBzaW5nbGUgZWxlbWVudCBpZiBhZGRpdGlvbmFsIGRldGFpbHMgYWJvdXQgdGhhdFxuLy8gZWxlbWVudCBuZWVkIHRvIGJlIGluZGljYXRlZC5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuXG4kYmFkZ2UtLXNwYWNpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG5cblxuXG4vLypcbi8vIFRoZSBhY3R1YWwgYmFkZ2UuIEVhY2ggYmFkZ2UgcHJvdmlkZXMgc3BhY2luZyBiZXR3ZWVuIGl0c2VsZiBhbmQgYmFkZ2VzIGl0XG4vLyBpcyBuZXh0IHRvLCBzbyB0aGV5IG11c3QgYmUgd3JhcHBlZCBpbiBhIGBiYWRnZV9fY29udGFpbmVyYCB0byByZW1vdmUgYW55XG4vLyBleGNlc3Mgb3V0c2lkZSBzcGFjaW5nIGlmIHlvdSBpbmNsdWRlIG1vcmUgdGhhbiBhIHNpbmdsZSBiYWRnZS5cbi8vXG4vLyBCZWNhdXNlIGJhZGdlcyBtb3N0IG9mdGVuIHNpdCBhbGxvbmdzaWRlIG90aGVyIHRleHQsIHRoZXkgYXJlIGRlc2lnbmVkIHRvXG4vLyBzY2FsZSB3aXRoIHRoZSBzaXplIG9mIHdoYXRldmVyIGNvbnRhaW5lciB0aGV5IGFyZSBpbi4gVGhleSB3aWxsIGFsd2F5cyBiZVxuLy8gc2xpZ2h0bHkgc21hbGxlciB0aGFuIHRoZSB0ZXh0IHNpemUgb2YgdGhlIGNvbnRlbnQgdG8gd2hpY2ggdGhleSBhcmVcbi8vIGF0dGFjaGVkIHN1Y2ggdGhhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgdGhlIGJhZGdlIGFwcHJveGltYXRlbHkgbWF0Y2ggdGhlXG4vLyBhc2NlbmRlcnMvIGRlc2NlbmRlcnMgb2YgdGhlIHRleHQuXG4vL1xuLy8gQG1hcmt1cFxuLy8gPGRpdiBjbGFzcz1cImJhZGdlX19jb250YWluZXJcIj5cbi8vICAgPCUgNS50aW1lcyBkbyB8aXwgJT5cbi8vICAgICA8ZGl2IGNsYXNzPVwiYmFkZ2VcIj5CYWRnZSA8JT0gaSArIDEgJT48L2Rpdj5cbi8vICAgPCUgZW5kICU+XG4vLyA8L2Rpdj5cblxuLmJhZGdlIHtcbiAgLy8gcG9zaXRpb25cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJveCBtb2RlbFxuICBmbGV4OiAwIDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAvLyBBIGxpdHRsZSBleHRyYSBib3R0b20gcGFkZGluZyB0byBtYWtlIGl0IGxvb2sgY2VudGVyZWQuXG4gIHBhZGRpbmc6IDAuMTVlbSAwLjVlbSAwLjI1ZW07XG5cbiAgLy8gYmFja2Ryb3BcbiAgQGluY2x1ZGUgZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoZ3JheSwgbGlnaHQpO1xuXG4gIC8vIHR5cGVcbiAgQGluY2x1ZGUgZm9udC1zaXplKGJhZGdlKTtcbiAgbGluZS1oZWlnaHQ6IGRlZmF1bHQobGluZS1oZWlnaHQpO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbn1cblxuLy8qXG4vLyBVc2UgdGhpcyBiYWRnZSB2YXJpYXRpb24gd2hlbiB5b3UgYXJlIHRyeWluZyB0byBpbmRpY2F0ZSBzb21lIHNvcnQgb2Zcbi8vIHdhcm5pbmcgdG8gdGhlIHVzZXIg4oCUwqBmb3IgZXhhbXBsZSwgd2hlbiB0aGUgY29udGVudCB0byB3aGljaCB0aGlzIGJhZGdlIGlzXG4vLyBhdHRhY2hlZCBoYXMgYmVlbiBkZXByZWNhdGVkIG9yIGhhcyBhIGNvbW1vbiBwaXRmYWxsLlxuLy9cbi8vIEBkZW1vX3R5cGUgam9pbnRcblxuLmJhZGdlLS13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoeWVsbG93KTtcbiAgY29sb3I6IHVpLWNvbG9yKHllbGxvdywgZGFyayk7XG59XG5cbi8vKlxuLy8gVXNlIHRoaXMgYmFkZ2UgdmFyaWF0aW9uIHdoZW4geW91IGFyZSB0cnlpbmcgdG8gaW5kaWNhdGUgYSBuZXcgb3IgdXBkYXRlZFxuLy8gc3RhdHVzIGZvciB0aGUgYXR0YWNoZWQgY29udGVudC4gRm9yIGV4YW1wbGUsIHRoaXMgYmFkZ2UgbWlnaHQgYmUgdXNlZCB0b1xuLy8gaW5kaWNhdGUgc29tZXRoaW5nIGlzIGluIGJldGEgb3IgaGFzIHJlY2VudGx5IGJlZW4gdXBncmFkZWQgb3IgcmVsZWFzZWQuXG4vL1xuLy8gQGRlbW9fdHlwZSBqb2ludFxuXG4uYmFkZ2UtLW5ldyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGJsdWUpO1xuICBjb2xvcjogdWktY29sb3IoYmx1ZSwgZGFya2VyKTtcbn1cblxuLy8qXG4vLyBVc2UgdGhpcyBiYWRnZSB2YXJpYXRpb24gd2hlbiB0aGUgYXR0YWNoZWQgY29udGVudCBpcyBtZWFudCB0byBiZVxuLy8gY29uY2VhbGVkLCBzZWNyZXQsIG9yIGluIHNvbWUgb3RoZXIgd2F5IG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGluIHRoZVxuLy8gYXZlcmFnZSBjYXNlLiBGb3IgZXhhbXBsZSwgdGhpcyBiYWRnZSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0XG4vLyBzb21ldGhpbmcgaXMgcHJpdmF0ZS8gZm9yIGludGVybmFsIHVzZSBvbmx5LlxuLy9cbi8vIEBkZW1vX3R5cGUgam9pbnRcblxuLmJhZGdlLS1zZWNyZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcbiAgY29sb3I6IHVpLWNvbG9yKGdyYXkpO1xufVxuXG4vLypcbi8vIFRoaXMgdmFyaWF0aW9uIGlzIHVzZWQgdG8gZml4IHRoZSB2ZXJ0aWNhbCBwYWRkaW5nIG9uIGJhZGdlcyB0aGF0IGFyZSBtZWFudFxuLy8gdG8gY29udGFpbiBjb250ZW50IHN0eWxlZCBhcyBjb2RlLiBCZWNhdXNlIHRoZSBtb25vc3BhY2UgZm9udCBmYW1pbHkgaGFzXG4vLyBkaWZmZXJlbnQgZm9udCBwcm9wZXJ0aWVzLCBsZWF2aW5nIHRoZSBleGlzdGluZyBgcGFkZGluZ2AvIGBsaW5lLWhlaWdodGBcbi8vIGFsb25nIHJlc3VsdHMgaW4gdGhlIHRleHQgc2l0dGluZyB0b28gY2xvc2VseSB0byB0aGUgdG9wIG9mIHRoZSBiYWRnZS4gVGhpc1xuLy8gZml4ZXMgdGhlIHByb2JsZW0gdXNpbmcgYSB2ZXJ5IHVuLXNjaWVudGlmaWMgcmVkaXN0cmlidXRpb24gb2YgdGhlXG4vLyBhdmFpbGFibGUgcGFkZGluZy5cbi8vXG4vLyBOb3RlIHRoYXQsIGJlY2F1c2UgdGhlIG1vbm9zcGFjZSBmb250IGhhcyBtb3JlIHNwYWNlIGFsbG9jYXRlZCBmb3IgZWFjaFxuLy8gY2hhcmFjdGVyLCBhIGJhZGdlIHdpdGggdGhpcyB2YXJpYW50IHdpbGwgYmUgd2lkZXIgdGhhbiBvbmUgd2l0aG91dCBpdCxcbi8vIGV2ZW4gaWYgdGhleSBoYXZlIHRoZSBzYW1lIGNvbnRlbnQuXG4vL1xuLy8gQGRlbW9fdHlwZSBzZWxlY3RcblxuLmJhZGdlLS1jb2RlIHtcbiAgLy8gQGluY2x1ZGUgdHlwZS0tbW9ub3NwYWNlLWZvbnQtZmFtaWx5O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDAuMmVtO1xufVxuXG4vLypcbi8vIEEgYmFkZ2UgdGhhdCBpcyB1c2VkIG9uIGl0cyBvd24gKHRoYXQgaXMsIG5vdCBiZXNpZGUgb3RoZXIgdGV4dCwgYnV0IG1heSBiZVxuLy8gYmVzaWRlIG90aGVyIGJ1dHRvbnMpLlxuLy9cbi8vIEBkZW1vX3R5cGUgc2VsZWN0XG5cbi5iYWRnZS0tc3RhbmRhbG9uZSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShiYWRnZS0tc3RhbmRhbG9uZSk7XG59XG5cblxuXG4vLypcbi8vIFRoaXMgY29udGFpbmVyIHNob3VsZCBhbHdheXMgYmUgd3JhcHBlZCBhcm91bmQgYSBzZXQgb2YgYmFkZ2VzLiBJdCByZW1vdmVzXG4vLyBhbnkgZXhjZXNzIHJpZ2h0IGFuZCBib3R0b20gbWFyZ2luICh3aGljaCBldmVyeSBjb250YWluZWQgYmFkZ2UgaGFzIHRvXG4vLyBhbGxvdyBmb3Igc3BhY2luZyBiZXR3ZWVuIHJvd3MgYW5kIGNvbHVtbnMgb2YgYmFkZ2VzKSwgd2hpbGUgc3RpbGwgYWxsb3dpbmdcbi8vIHRoZSBiYWRnZXMgdG8gYnJlYWsgb250byBhIG5ldyBsaW5lIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgdG8gY29udGFpblxuLy8gdGhlbSBhbGwgb24gYSBzaW5nbGUgbGluZS5cbi8vXG4vLyBJZiBvbmx5IGEgc2luZ2xlIGJhZGdlIGV4aXN0cywgdGhpcyBjb250YWluZXIgY2FuIGJlIG9taXR0ZWQuXG5cbi5iYWRnZV9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLXJpZ2h0OiBuZWdhdGl2ZSgkYmFkZ2UtLXNwYWNpbmcpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IG5lZ2F0aXZlKCRiYWRnZS0tc3BhY2luZykgIWltcG9ydGFudDtcblxuICA+IC5iYWRnZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkYmFkZ2UtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhZGdlLS1zcGFjaW5nO1xuICB9XG59XG4iLCIvLyAgICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fICAgICAgICAgIF9fX1xuLy8gICAgICAgX19fX18gICAgICAgIC9fXy9cXCAgICAgICAgIF9fXyAgICAgICBfX18gICAgIC8gIC9cXCAgICAgICAgL19fL1xcXG4vLyAgICAgIC8gIC86OlxcICAgICAgIFxcICBcXDpcXCAgICAgICAvICAvXFwgICAgIC8gIC9cXCAgIC8gIC86OlxcICAgICAgIFxcICBcXDpcXFxuLy8gICAgIC8gIC86L1xcOlxcICAgICAgIFxcICBcXDpcXCAgICAgLyAgLzovICAgIC8gIC86LyAgLyAgLzovXFw6XFwgICAgICAgXFwgIFxcOlxcXG4vLyAgICAvICAvOi9+Lzo6XFwgIF9fXyAgXFwgIFxcOlxcICAgLyAgLzovICAgIC8gIC86LyAgLyAgLzovICBcXDpcXCAgX19fX19cXF9fXFw6XFxcbi8vICAgL19fLzovIC86L1xcOnwvX18vXFwgIFxcX19cXDpcXCAvICAvOjpcXCAgIC8gIC86OlxcIC9fXy86LyBcXF9fXFw6XFwvX18vOjo6Ojo6OjpcXFxuLy8gICBcXCAgXFw6XFwvOi9+LzovXFwgIFxcOlxcIC8gIC86Ly9fXy86L1xcOlxcIC9fXy86L1xcOlxcXFwgIFxcOlxcIC8gIC86L1xcICBcXDpcXH5+XFx+flxcL1xuLy8gICAgXFwgIFxcOjovIC86LyAgXFwgIFxcOlxcICAvOi8gXFxfX1xcLyAgXFw6XFxcXF9fXFwvICBcXDpcXFxcICBcXDpcXCAgLzovICBcXCAgXFw6XFwgIH5+flxuLy8gICAgIFxcICBcXDpcXC86LyAgICBcXCAgXFw6XFwvOi8gICAgICAgXFwgIFxcOlxcICAgIFxcICBcXDpcXFxcICBcXDpcXC86LyAgICBcXCAgXFw6XFxcbi8vICAgICAgXFwgIFxcOjovICAgICAgXFwgIFxcOjovICAgICAgICAgXFxfX1xcLyAgICAgXFxfX1xcLyBcXCAgXFw6Oi8gICAgICBcXCAgXFw6XFxcbi8vICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgICAgICAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvXG4vL1xuLy8qXG4vLyBAcGF0dGVybiBCdXR0b25zXG4vLyBAdGFnbGluZSBDYXB0dXJlIGFsbCB0aGUgY2xpY2tzLlxuLy9cbi8vIEJ1dHRvbnMgYXJlIHdoYXQgdGhlIHVzZXIgc2hvdWxkIHByZXNzIHRvIGluaXRpYXRlIG1vc3QgYWN0aW9ucy4gQWN0aW9uc1xuLy8gbWF5IHRha2UgcGxhY2Ugb24gdGhlIHBhZ2UgKGZvciBleGFtcGxlLCBieSBhY3RpdmF0aW5nIGEgcG9wb3ZlciBvciB4LXJheVxuLy8gbW9kZSnCoG9yIG1heSBzZW5kIHRoZSB1c2VyIHRvIGFub3RoZXIgc2l0ZSB0byBwZXJmb3JtIGFuIGFjdGlvbiAodGhlIG1vc3Rcbi8vIG5vdGFibGUgZXhhbXBsZSBvZiB0aGlzIGFyZSB0aGUgYnV0dG9ucyB0aGF0IHNlbmQgdGhlIHVzZXIgdG8gR2l0aHViKS4gVGhlXG4vLyBlbGVtZW50IG9uIHdoaWNoIHRvIGFwcGx5IHRoZXNlIGNsYXNzZXMgd2lsbCBkZXBlbmQgb24gd2hldGhlciB0aGUgYWN0aW9uXG4vLyBpcyBpbnRlcm5hbCBvciBleHRlcm5hbCB0byB0aGUgcGFnZS5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuXG5cbiRidXR0b24tLXNwYWNpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG5cblxuXG4vLypcbi8vIEB0aXRsZSBTdGFuZGFyZCBCdXR0b25zXG4vL1xuLy8gQSBzdGFuZGFyZCBidXR0b24uIFRoaXMgY29tcG9uZW50IG5vcm1hbGl6ZXMgdGhlIHN0eWxlcyBvZiBib3RoIGBidXR0b25gIGFuZFxuLy8gYGFgIGVsZW1lbnRzIHNvIHRoYXQgdGhlc2UgY2xhc3NlcyBjYW4gYmUgcGxhY2VkIG9uIGVpdGhlciBvbmUuIElmIHRoZSBhY3Rpb25cbi8vIGlzIGludGVybmFsIChpLmUuLCBkb2Vzbid0IHJlcXVpcmUgYSBgR0VUYCByZXF1ZXN0KSwgdXNlIGEgYGJ1dHRvbmAuIElmIHRoZVxuLy8gYWN0aW9uIGRvZXMgcmVxdWlyZSBhIGBHRVRgLCB1c2UgYSBVUkwuIE5ldmVyIHVzZSBhbiBgYWAgdGFnIHdpdGggYSBibGFua1xuLy8gKG9yIGBcIiNcImApIGBocmVmYCBhdHRyaWJ1dGUuXG4vL1xuLy8gQW55IHZhcmlhdGlvbnMgb24gdGhpcyBidXR0b24gc2hvdWxkIGVuc3VyZSB0aGF0IHRoZXkgZGVzaWduIGFuZCBpbXBsZW1lbnRcbi8vIGRlc2lnbnMgZm9yIHRoZSBgOmZvY3VzYCBzdGF0ZSwgYDphY3RpdmVgIHN0YXRlLCBgOmhvdmVyYCBzdGF0ZSAob3B0aW9uYWwpLFxuLy8gYW5kIGZvciBpY29ucyB3aXRoIGJ1dHRvbnMgKHVzaW5nIGEgY2hpbGQgc2VsZWN0b3IgdG8gdGhlIGBpY29uYCBjb21wb25lbnQpLFxuLy8gaWYgYWRqdXN0bWVudHMgdG8gdGhlIGNvbnRhaW5lZCBpY29ucyBhcmUgcmVxdWlyZWQuXG4vL1xuLy8gQSBzaW5nbGUgYnV0dG9uIGNhbiBiZSBpbmNsdWRlZCBvbiBpdHMgb3duLCB3aXRob3V0IGFueSBjb250YWluZXIuIElmXG4vLyBtdWx0aXBsZSBidXR0b25zIGhhdmUgdG8gYmUgcGxhY2VkIGJlc2lkZSBlYWNoIG90aGVyLCB3cmFwIGFsbCBvZiB0aGUgYnV0dG9uc1xuLy8gaW4gYSBgZG9ja3MtYnV0dG9uX19jb250YWluZXJgLlxuLy9cbi8vIEBtYXJrdXBcbi8vIDxkaXYgY2xhc3M9XCJkb2Nrcy1idXR0b25fX2NvbnRhaW5lclwiPlxuLy8gICA8YnV0dG9uIGNsYXNzPVwiZG9ja3MtYnV0dG9uXCI+YnV0dG9uITwvYnV0dG9uPlxuLy9cbi8vICAgPGJ1dHRvbiBjbGFzcz1cImRvY2tzLWJ1dHRvblwiPlxuLy8gICAgIDwlPSBkb2Nrc19pY29uIDpnaXRodWIsIHNpemU6IDptZWRpdW0gJT5cbi8vICAgICA8c3BhbiBjbGFzcz1cImRvY2tzLWJ1dHRvbl9fdGV4dFwiPmljb24gKyB0ZXh0PC9zcGFuPlxuLy8gICA8L2J1dHRvbj5cbi8vXG4vLyAgIDxidXR0b24gY2xhc3M9XCJkb2Nrcy1idXR0b25cIj5cbi8vICAgICA8c3BhbiBjbGFzcz1cImRvY2tzLWJ1dHRvbl9fdGV4dFwiPnRleHQgKyBpY29uPC9zcGFuPlxuLy8gICAgIDwlPSBkb2Nrc19pY29uIDpnaXRodWIsIHNpemU6IDptZWRpdW0gJT5cbi8vICAgPC9idXR0b24+XG4vL1xuLy8gICA8ZGl2IGNsYXNzPVwiZG9ja3MtYnV0dG9uX19zZWdtZW50ZWQtY29udGFpbmVyXCI+XG4vLyAgICAgPGJ1dHRvbiBjbGFzcz1cImRvY2tzLWJ1dHRvblwiPlNlZ21lbnQgMTwvYnV0dG9uPlxuLy8gICAgIDxidXR0b24gY2xhc3M9XCJkb2Nrcy1idXR0b25cIj5TZWdtZW50IDI8L2J1dHRvbj5cbi8vICAgPC9kaXY+XG4vLyA8L2Rpdj5cblxuLmRvY2tzLWJ1dHRvbiB7XG4gIC8vIGJveCBtb2RlbFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgZGVmYXVsdChjb250cm9sLXBhZGRpbmcpO1xuXG4gIC8vIGJhY2tkcm9wXG4gIEBpbmNsdWRlIGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuXG4gIC8vIHR5cGVcbiAgLy8gQGluY2x1ZGUgdHlwZS0tZGVmYXVsdC1mb250LWZhbWlseTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKGNvbnRyb2wpO1xuICBsaW5lLWhlaWdodDogZGVmYXVsdChjb250cm9sLXNpemUpO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5KTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgPiAqOmZpcnN0LWNoaWxkIHsgbWFyZ2luLXJpZ2h0OiAkYnV0dG9uLS1zcGFjaW5nOyB9XG59XG5cbi8vKlxuLy8gQSBzbGlnaHRlciBkYXJrIHZhcmlhdGlvbi5cblxuLmRvY2tzLWJ1dHRvbi0tZGFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmspO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VzdCk7XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmspO1xuICAgIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcbiAgfVxufVxuXG4vLypcbi8vIEEgYnV0dG9uIHRoYXQgY2FuIG5vIGxvbmdlciBiZSBwcmVzc2VkLiBNYWtlIHN1cmUgdG8gYWx3YXlzIGFsc28gaW5jbHVkZSB0aGVcbi8vIGBkaXNhYmxlZGAgYXR0cmlidXRlIG9uIHRoZSBhY3R1YWwgYGJ1dHRvbmAg4oCUwqB0aGlzIGltcHJvdmVzIHVzYWJpbGl0eSBieVxuLy8gcHJldmVudGluZyB0aGUgYnV0dG9uIGZyb20gYmVpbmcgdGFiYmVkIHRvLCBhbmQgcHJldmVudHMgYW55IGV2ZW50IGhhbmRsZXJzXG4vLyBvbiB0aGUgYGJ1dHRvbmAgZnJvbSBydW5uaW5nLlxuLy9cbi8vIEBqYXZhc2NyaXB0X2FjdGlvbiB0aGlzLmNsYXNzTGlzdC5hZGQoXCJkb2Nrcy1idXR0b24tLWlzLWRpc2FibGVkXCIpOyB0aGlzLmRpc2FibGVkID0gdHJ1ZVxuXG4uZG9ja3MtYnV0dG9uLS1pcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMztcbn1cblxuXG5cbi8vKlxuLy8gQSBjb250YWluZXIgZm9yIGEgY29sbGVjdGlvbiBvZiBidXR0b25zIHRoYXQgbm9ybWFsaXplcyB0aGUgbWFyZ2luIG9uIHRoZVxuLy8gb3V0c2lkZS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBlYWNoIGJ1dHRvbiBpbnNpZGUgdGhlIGNvbnRhaW5lciBoYXNcbi8vIHJpZ2h0IGFuZCBib3R0b20gbWFyZ2luIHNvIHRoYXQgdGhlcmUgaXMgdmVydGljYWwgYW5kIGhvcml6b250YWwgc3BhY2Vcbi8vIGJldHdlZW4gZWFjaCBvZiBhbnkgbnVtYmVyIG9mIGJ1dHRvbnMuXG5cbi5kb2Nrcy1idXR0b25fX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogbmVnYXRpdmUoJGJ1dHRvbi0tc3BhY2luZykgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogbmVnYXRpdmUoJGJ1dHRvbi0tc3BhY2luZykgIWltcG9ydGFudDtcblxuICAvLyBQcmV2ZW50cyBtYXJnaW4gZnJvbSBjb2xsYXBzaW5nIHdoaWxlIHN0aWxsIGFsbG93aW5nIG92ZXJmbG93L1xuXG4gICY6YWZ0ZXIgeyBjb250ZW50OiBcIlwiOyBkaXNwbGF5OiB0YWJsZTsgfVxuXG4gIC8vIEFsbG93IGZvciBhbnl0aGluZyBpbnNpZGUgdGhlIGNvbnRhaW5lciDigJTCoHRoaXMgaXMgdXNlZnVsIGZvciwgZm9yIGV4YW1wbGUsXG4gIC8vIGNvbnRhaW5lZCBidXR0b25zIHRoYXQgYWN0aXZhdGUgcG9wb3ZlcnMgYW5kIHRodXMgaGF2ZSBwb3BvdmVyIGNvbnRhaW5lcnNcbiAgLy8gYXJvdW5kIHRoZW0uXG5cbiAgPiAqIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6ICRidXR0b24tLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJ1dHRvbi0tc3BhY2luZztcbiAgfVxufVxuXG4vLypcbi8vIFVzZSB0aGlzIGNvbnRhaW5lciB2YXJpYXRpb24gd2hlbiB5b3Ugd2FudCBhbGwgb2YgdGhlIGJ1dHRvbnMgaW5zaWRlIHRoZVxuLy8gY29udGFpbmVyIHRvIGNvbnN1bWUgYW4gZXF1YWwgcGFydCBvZiB0aGUgdG90YWwgd2lkdGggYXZhaWxhYmxlIHRvIHRoZVxuLy8gY29udGFpbmVyLiBOb3RlIHRoYXQgcG90ZW50aWFsbHktdW5leHBlY3RlZCBiZWhhdmlvciBtYXkgb2NjdXIgd2hlbiB0aGVcbi8vIGJ1dHRvbnMgaW4gdGhpcyBidXR0b24gZ3JvdXAgaGF2ZSBhIHRvdGFsIGludHJpbnNpYyBtaW5pbXVtIHdpZHRoIGdyZWF0ZXJcbi8vIHRoYW4gdGhhdCBvZiB0aGUgY29udGFpbmVyIOKAlCBidXR0b25zIHdpdGggc21hbGxlciBpbnRyaW5zaWMgd2lkdGhzIGluIHRoZVxuLy8gZ3JvdXAgd2lsbCBzaHJpbmsgYXMgbXVjaCBhcyBwb3NzaWJsZSwgYW5kIHRoZW4gYnV0dG9ucyB3aWxsIHN0YXJ0LCBvbmUtYnktb25lXG4vLyBhcyByZXF1aXJlZCwgYnJlYWtpbmcgb250byBhZGRpdGlvbmFsIGxpbmVzIChhbmQgZmlsbGluZyB0aGVtIGNvbXBsZXRlbHksXG4vLyByZXN1bHRpbmcgaW4gc29tZSBidXR0b25zIGxpa2VseSBiZWluZyBsYXJnZXIgdGhhbiBvdGhlcnMpLlxuLy9cbi8vIEZvciB0aGUgYmVzdCByZXN1bHRzLCB0cnkgdG8gaGF2ZSBvbmx5IHR3byBidXR0b25zIHNpZGUtYnktc2lkZSBpbiBhXG4vLyBjb250YWluZXIgdXNpbmcgdGhpcyB2YXJpYW50LlxuXG4uZG9ja3MtYnV0dG9uX19jb250YWluZXItLWZpbGwtd2lkdGgge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gIC8vIEZvciBib3RoIGJ1dHRvbnMgYW5kIG5vbi1idXR0b24tZXkgdGhpbmdzIGluIGJ1dHRvbiBncm91cHMsIGxpa2UgcG9wb3ZlclxuICAvLyBjb250YWluZXJzLlxuXG4gIC5kb2Nrcy1idXR0b24sXG4gID4gKjpub3QoLmRvY2tzLWJ1dHRvbikge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAwIDAlO1xuICAgIG1pbi13aWR0aDogLXdlYmtpdC1taW4tY29udGVudDtcbiAgICBtaW4td2lkdGg6IC1tb3otbWluLWNvbnRlbnQ7XG4gICAgbWluLXdpZHRoOiBtaW4tY29udGVudDtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBUaGUgdGV4dCBmb3IgYSBidXR0b24uIFRoaXMgY29udGFpbmVyIGlzIG5vdCBuZWNlc3NhcnkgdW5sZXNzIHRoZXJlIGlzIGFsc29cbi8vIGFuIGljb24gaW4gdGhlIGJ1dHRvbi5cblxuLmRvY2tzLWJ1dHRvbl9fdGV4dCB7fVxuXG5cblxuLy8qXG4vLyBBIHdyYXBwZXIgYXJvdW5kIGJ1dHRvbnMgdGhhdCBjYXVzZXMgdGhlbSB0byBsb29rIGxpa2Ugb25lIGJ1dHRvbiBzZWdtZW50ZWRcbi8vIGludG8gcGllY2VzLlxuXG4uZG9ja3MtYnV0dG9uX19zZWdtZW50ZWQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgPiAuZG9ja3MtYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OiBub25lOyB9XG4gICAgJjpmaXJzdC1jaGlsZCB7IGJvcmRlci1yYWRpdXM6IGRlZmF1bHQoYm9yZGVyLXJhZGl1cykgMCAwIGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7IH1cbiAgICAmOmxhc3QtY2hpbGQgeyBib3JkZXItcmFkaXVzOiAwIGRlZmF1bHQoYm9yZGVyLXJhZGl1cykgZGVmYXVsdChib3JkZXItcmFkaXVzKSAwOyB9XG4gIH1cbn1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgX19fX19cbi8vICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcICAgICAgICAvICAvXFwgICAgICAvICAvOjpcXFxuLy8gICAgICAvICAvOi8gICAgICAgLyAgLzo6XFwgICAgICAvICAvOjpcXCAgICAvICAvOi9cXDpcXFxuLy8gICAgIC8gIC86LyAgICAgICAvICAvOi9cXDpcXCAgICAvICAvOi9cXDpcXCAgLyAgLzovICBcXDpcXFxuLy8gICAgLyAgLzovICBfX18gIC8gIC86L34vOjpcXCAgLyAgLzovfi86LyAvX18vOi8gXFxfX1xcOnxcbi8vICAgL19fLzovICAvICAvXFwvX18vOi8gLzovXFw6XFwvX18vOi8gLzovX19cXCAgXFw6XFwgLyAgLzovXG4vLyAgIFxcICBcXDpcXCAvICAvOi9cXCAgXFw6XFwvOi9fX1xcL1xcICBcXDpcXC86Ojo6Oi9cXCAgXFw6XFwgIC86L1xuLy8gICAgXFwgIFxcOlxcICAvOi8gIFxcICBcXDo6LyAgICAgIFxcICBcXDo6L35+fn4gIFxcICBcXDpcXC86L1xuLy8gICAgIFxcICBcXDpcXC86LyAgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcICAgICAgIFxcICBcXDo6L1xuLy8gICAgICBcXCAgXFw6Oi8gICAgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcICAgICAgIFxcX19cXC9cbi8vICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cbi8vXG4vLypcbi8vIEBwYXR0ZXJuIENhcmRcbi8vXG4vLyBBIHNpbXBsZSwgY2xlYW4gY29udGFpbmVyIGZvciBjb250ZW50IHRoYXQgaXMgdG8gYXBwZWFyIG9uIGFuIGFyZWEgd2l0aCBhXG4vLyBjb2xvcmVkIGJhY2tncm91bmQgYnV0IHRoYXQgcmVxdWlyZXMgYSBjb21wbGV0ZWx5IG5ldXRyYWwgYmFja2dyb3VuZCB0b1xuLy8gYXBwZWFyIHByb3Blcmx5LlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG4vLypcbi8vIEBtYXJrdXBcbi8vIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4vLyAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDFyZW07IHdpZHRoOiAxcmVtOyBtYXJnaW46IDJyZW0gYXV0bztcIj48L2Rpdj5cbi8vIDwvZGl2PlxuXG4uY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbiAgYm9yZGVyLXJhZGl1czogZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgX19fICAgICAgICBfX19fXyAgICAgICAgX19fXG4vLyAgICAgICAvICAvXFwgICAgICAgIC8gIC9cXCAgICAgIC8gIC86OlxcICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86LyAgICAgICAvICAvOjpcXCAgICAvICAvOi9cXDpcXCAgICAvICAvOi9fXG4vLyAgICAgLyAgLzovICAgICAgIC8gIC86L1xcOlxcICAvICAvOi8gIFxcOlxcICAvICAvOi8gL1xcXG4vLyAgICAvICAvOi8gIF9fXyAgLyAgLzovICBcXDpcXC9fXy86LyBcXF9fXFw6fC8gIC86LyAvOi9fXG4vLyAgIC9fXy86LyAgLyAgL1xcL19fLzovIFxcX19cXDpcXCAgXFw6XFwgLyAgLzovX18vOi8gLzovIC9cXFxuLy8gICBcXCAgXFw6XFwgLyAgLzovXFwgIFxcOlxcIC8gIC86L1xcICBcXDpcXCAgLzovXFwgIFxcOlxcLzovIC86L1xuLy8gICAgXFwgIFxcOlxcICAvOi8gIFxcICBcXDpcXCAgLzovICBcXCAgXFw6XFwvOi8gIFxcICBcXDo6LyAvOi9cbi8vICAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDo6LyAgICBcXCAgXFw6XFwvOi9cbi8vICAgICAgXFwgIFxcOjovICAgICAgXFwgIFxcOjovICAgICAgXFxfX1xcLyAgICAgIFxcICBcXDo6L1xuLy8gICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gQ29kZSBCbG9ja1xuLy9cbi8vIFRoaXMgY29tcG9uZW50IHByb3ZpZGVzIGEgZnVsbC1mZWF0dXJlZCBjb250YWluZXIgZm9yIGNvZGUgZGVtb3MsIGluY2x1ZGluZ1xuLy8gc3VwcG9ydCBmb3IgbXVsdGlwbGUgbGFuZ3VhZ2VzIGJlaW5nIHNob3duIGluIGEgc2luZ2xlIGNvZGUgYmxvY2ssIGFcbi8vIHJlbmRlcmVkIGRlbW8gb2YgdGhlIGNvZGUgaW4gdGhlIGNvZGUgYmxvY2ssIGhpZGluZyB0aGUgbWFya3VwLCBhbmRcbi8vIHN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCBjb21wb25lbnRzLiBUaGUgY29tcG9uZW50IGNhbiBiZSBzY2FsZWQgdG9cbi8vIGluY2x1ZGUgYXMgbXVjaCBvciBhcyBsaXR0bGUgb2YgdGhlc2UgZmVhdHVyZXMgYXMgZGVzaXJlZC5cbi8vXG4vLyBUaGlzIHRoaW5nIG5lZWRzIGhlIGZvbGxvd2luZyBjb21wb25lbnRzOlxuLy9cbi8vIC0gW2BidXR0b25gXShAbGluaylcbi8vXG4vLyAtIFtgcmVzaXphYmxlOjpmb2N1c19zaXplX2J1dHRvbmBdKEBsaW5rKVxuLy9cbi8vIC0gW2BleHBsb2RlZDo6RXhwbG9kZWQjc2V0X21hcmt1cGBdKEBsaW5rKVxuLy9cbi8vIFRoZSBKYXZhU2NyaXB0IHBhcnQgb2YgdGhpcyBjb21wb25lbnQgYWxzbyBzdXBwb3J0cyBjb21tdW5pY2F0aW9uIHdpdGggYW5cbi8vIGBpZnJhbWVgZWQgZGVtbywgaW4tcGxhY2UgdXBkYXRpbmcgb2YgaGVscGVyIGFuZCByZW5kZXJlZCBtYXJrdXAgZm9yXG4vLyBjb21wb25lbnRzLCBhbmQsIHRocm91Z2ggW2hpZ2hsaWdodC5qc10oaHR0cHM6Ly9oaWdobGlnaHRqcy5vcmcvKSwgc3ludGF4XG4vLyBoaWdobGlnaHRpbmcgb2YgbWFueSBjb21tb24gbGFuZ3VhZ2VzLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuLy8qXG4vLyBAdGl0bGUgQ29kZSBCbG9ja1xuLy9cbi8vIFRoaXMgaXMgaGUgb3ZlcmFsbCBjb250YWluZXIgZm9yIHRoZSBjb2RlIGJsb2NrLiBJdCdzIHByaW1hcnkgcHVycG9zZSBpcyB0b1xuLy8gcHJvdmlkZSBtYXJnaW4gYWJvdmUgYW5kIGJlbG93IHRoZSBjb2RlIGJsb2NrLCBhbmQgdG8gcHJvdmlkZSBhIGhvb2sgdG9cbi8vIG1ha2UgYWRqdXN0bWVudHMgdG8gbWFueSBzdWJjb21wb25lbnRzIHRocm91Z2ggdmFyaWF0aW9ucyBzdWNoIGFzXG4vLyBgY29kZS1ibG9jay0tY29uZGVuc2VkYCBhbmQgYGNvZGUtYmxvY2stLWhpZGRlbmAuXG4vL1xuLy8gQ29kZSBibG9ja3MgY2FuIGdvIGZyb20gdGhlIGluY3JlZGlibHkgY29tcGxleCAoc2VlIHRoZSBkZW1vIGFib3ZlKSwgdG9cbi8vIG1vcmUgbW9kZXJhdGUgbGV2ZWxzIG9mIGRldGFpbCDigJTCoHN1Y2ggYXMgYSBjb2RlIGJsb2NrIHRoYXQgZ2V0cyByZW5kZXJlZFxuLy8gaW5saW5lIGJhc2VkIG9uIGEgdGVtcGxhdGluZyBsYW5ndWFnZSBhbmQgYSBzdHViLCBhbmQgdGhhdCBvdXRwdXRzIGFuXG4vLyBhdHRhY2hlZCBkZW1vOlxuLy9cbi8vIGBgYGVyYl9kZW1vXG4vLyA8JT0gZG9ja3NfY29kZV9ibG9jayBjb2RlOiBcIjxwIHN0eWxlPSdjb2xvcjogZ3JheTsnPkhlbGxvIHdvcmxkITwvcD5cIixcbi8vICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiBcImVyYlwiLFxuLy8gICAgICAgICAgICAgICAgICAgICAgZGVtbz86IHRydWUsXG4vLyAgICAgICAgICAgICAgICAgICAgICBoaWRkZW4/OiB0cnVlICU+XG4vLyBgYGBcbi8vXG4vLyBBbGwgdGhlIHdheSB0byBhbiBpbmNyZWRpYmx5IHNpbXBsZSBjb2RlIGJsb2NrOlxuLy9cbi8vIGBgYGVyYl9kZW1vXG4vLyA8JT0gZG9ja3NfY29kZV9ibG9jayBjb2RlOiBcIjxwIGNsYXNzPSd0eXBlIHR5cGUtLXBhcmFncmFwaCc+SGVsbG8gd29ybGQhPC9wPlwiICU+XG4vLyBgYGBcbi8vXG4vLyBAaGVscGVyXG4vLyA8JT0gZG9ja3NfY29kZV9ibG9jayBjb2RlOiBcIjxwIHN0eWxlPSdjb2xvcjogZ3JheTsnPkhlbGxvIHdvcmxkITwvcD5cIixcbi8vICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlOiBcImVyYlwiLFxuLy8gICAgICAgICAgICAgICAgICAgICAgZGVtbz86IHRydWUsXG4vLyAgICAgICAgICAgICAgICAgICAgICBoaWRkZW4/OiB0cnVlICU+XG5cbi5jb2RlLWJsb2NrIHtcbiAgbWFyZ2luOiBkZWZhdWx0KHNwYWNpbmcpIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgQGluY2x1ZGUgZGVmYXVsdChib3JkZXItcmFkaXVzKTtcblxuICAuZG9ja3MtYnV0dG9uIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG5cbi8vKlxuLy8gQSBjb2RlIGJsb2NrIHdpdGggbGVzcyBpbnRlcm5hbCBwYWRkaW5nIGFuZCBhIHNtYWxsZXIgZm9udCBzaXplLiBVc2UgdGhpc1xuLy8gdmFyaWFudCBmb3Igc2l0dWF0aW9ucyBpbiB3aGljaCB0aGUgY29kZSBpcyBzZWNvbmRhcnkgb3Igd291bGQgY2xhc2ggd2l0aFxuLy8gYSBtb3JlIGltcG9ydGFudCBjb2RlIGJsb2NrLlxuLy9cbi8vIEBzZXRfYnkgOmNvbmRlbnNlZD9cblxuLmNvZGUtYmxvY2stLWNvbmRlbnNlZCB7XG4gIG1hcmdpbi10b3A6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG5cbiAgLmNvZGUtYmxvY2tfX2NvZGUge1xuICAgIHBhZGRpbmctYm90dG9tOiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZShjb2RlLWJsb2NrLS1jb25kZW5zZWQpO1xuICB9XG5cbiAgJjpub3QoLmNvZGUtYmxvY2stLXdpdGgtaGVhZGVyKSB7XG4gICAgLmNvZGUtYmxvY2tfX2NvZGUge1xuICAgICAgcGFkZGluZy10b3A6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG4gICAgfVxuICB9XG59XG5cbi8vKlxuLy8gQSBjb2RlIGJsb2NrIHRoYXQgaXMgZnVsbC1ibGVlZCB3aXRoaW4gdGhlIHZpZXdwb3J0LiBUaGlzIHdpbGwgcmVtb3ZlIGFueVxuLy8gdW5uZWNlc3NhcnkgYm9yZGVyIHJhZGl1cyBhbmQgc2lkZSBwYWRkaW5nLyBib3JkZXJzLlxuLy9cbi8vIEBzZXRfYnkgOmZ1bGxfd2lkdGg/XG5cbi5jb2RlLWJsb2NrLS1mdWxsLXdpZHRoIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAuY29udGVudCAmIHtcbiAgICBtYXJnaW4tbGVmdDogbmVnYXRpdmUoZGVmYXVsdChzcGFjaW5nKSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBuZWdhdGl2ZShkZWZhdWx0KHNwYWNpbmcpKTtcbiAgfVxufVxuXG4vLypcbi8vIEEgY29kZSBibG9jayB0aGF0IGhhcyBoaWRkZW4gdGhlIGNvbnRhaW5lZCBtYXJrdXAgYW5kIG1vc3Qgb2YgaXRzIFVJLiBVc2Vcbi8vIHRoaXMgZm9yIHRoZSBpbml0aWFsIHN0YXRlIG9mIGEgY29kZSBibG9jayBvbmx5IHdoZW4gaXQgaGFzIGEgZGVtbyBhdHRhY2hlZFxuLy8gdG8gaXQsIG90aGVyd2lzZSB0aGUgY29kZSBibG9jayB3aWxsIGFwcGVhciBhcyBhIHN0cmFuZ2Ugc3RyaXAgb2YgY29sb3Jcbi8vIHdpdGggbm8gaW5kaWNhdGlvbiBvZiBpdHMgcHVycG9zZS4gSGlkZWFibGUgY29kZSBibG9ja3MgKGFzIHNldCBieVxuLy8gYDpoaWRlYWJsZT9gKSBjYW4gaGF2ZSB0aGlzIHN0YXRlIHRvZ2dsZWQgYnkgY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lZFxuLy8gYnV0dG9uLlxuLy9cbi8vIFdoZW4gdGhlIGNvZGUgYmxvY2sgaXMgaGlkZGVuLCBhbGwgb2YgdGhlIFVJIGluIHRoZSBoZWFkZXIgZXhjZXB0IGZvciB0aGVcbi8vIGJ1dHRvbiB0byB0b2dnbGUgdmlzaWJpbGl0eSBpcyBoaWRkZW4gKHRoYXQgaXMsIHRhYnMgdG8gc3dpdGNoIGJldHdlZW5cbi8vIGxhbmd1YWdlcyBhbmQgdGhlIGBzZWxlY3RgIHRvIHN3aXRjaCBiZXR3ZWVuIGRlbW9zLCBpZiB0aGV5IGV4aXN0KS5cbi8vXG4vLyBAc2V0X2J5IDpoaWRkZW4/LCBDb2RlQmxvY2sjdG9nZ2xlXG4vLyBAamF2YXNjcmlwdF9hY3Rpb24gRG9ja3MuQ29kZUJsb2NrLmZvcih0aGlzKS50b2dnbGUoKVxuXG4uY29kZS1ibG9jay0taXMtaGlkZGVuIHtcbiAgJjpub3QoLmNvZGUtYmxvY2stLXdpdGgtZGVtbykge1xuICAgIC5jb2RlLWJsb2NrX190b2dnbGVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgICB9XG4gIH1cblxuICAuY29kZS1ibG9ja19fY29udGVudCB7XG4gICAgaGVpZ2h0OiAwO1xuICB9XG59XG5cblxuXG4vLypcbi8vIFRoaXMgY29tcG9uZW50IHNpdHMgaW4gdGhlIGBjb2RlLWJsb2NrX19oZWFkZXJgIGFuZCB3cmFwcyBhcm91bmQgYm90aCB0aGVcbi8vIGJ1dHRvbiB0byBoaWRlIHRoZSBjb2RlIGJsb2NrIGFuZCBhIGBzZWxlY3RgIHRvIHN3aXRjaCBiZXR3ZWVuIHNldHMgb2Zcbi8vIGNvZGUgdGhhdCBtYXkgYmUgc2hvd24gaW4gdGhpcyBjb2RlIGJsb2NrLCBpZiBlaXRoZXIgb3IgYm90aCBhcmUgcmVxdWlyZWQuXG5cbi5jb2RlLWJsb2NrX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuXG5cbi8vKlxuLy8gVGhlIGNvbnRhaW5lciBmb3IgYWxsIGFjdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvZGUgYmxvY2suIElmIHRoZSBjb2RlIGJsb2NrXG4vLyBpbmNsdWRlcyBib3RoIGhlbHBlciBhbmQgY29tcGlsZWQgbWFya3VwLCB0aGUgaGVhZGVyIHdpbGwgY29udGFpbiB0aGVcbi8vIHRhYmxpc3QgcmVxdWlyZWQgdG8gc3dpdGNoIGJldHdlZW4gdGhlbS4gSWYgdGhlIGNvZGUgYmxvY2sgaXMgaGlkZWFibGUsXG4vLyB0aGUgaGVhZGVyIHdpbGwgYWxzbyBpbmNsdWRlIGEgYnV0dG9uIHRvIGhpZGUgaXQuIEZpbmFsbHksIGlmIHRoZXJlIGFyZVxuLy8gbXVsdGlwbGUgc2V0cyBvZiBjb2RlIHRoYXQgbWF5IGJlIHNob3duIGluIHRoaXMgY29kZSBibG9jaywgdGhlIGhlYWRlciB3aWxsXG4vLyBjb250YWluIGEgYHNlbGVjdGAgdG8gc3dpdGNoIGJldHdlZW4gdGhlbS5cblxuLmNvZGUtYmxvY2tfX2hlYWRlciB7XG4gIC8vIGJveCBtb2RlbFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSkgZGVmYXVsdChzcGFjaW5nKTtcbiAgZmxleDogMCAwIGF1dG8gIWltcG9ydGFudDtcblxuICAvLyBiYWNrZHJvcFxuICBiYWNrZ3JvdW5kOiB1aS1jb2xvcihncmF5LCBsaWdodCk7XG5cbiAgLnNlbGVjdCxcbiAgLnRhYmxpc3Qge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2VcbiAgfVxuXG4gIC50YWJsaXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cblxuXG4vLypcbi8vIFRoaXMgY29tcG9uZW50IGFsbG93cyB0aGUgY29kZSB0byBzY3JvbGwgYm90aCB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkuXG5cbi5jb2RlLWJsb2NrX19jb2RlLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xufVxuXG5cbi8vKlxuLy8gVGhlIHRoaW5nIHRoYXQgdG9nZ2xlcy5cblxuLmNvZGUtYmxvY2tfX3RvZ2dsZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5KTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShjb250cm9sKTtcbiAgcGFkZGluZzogaGFsZihkZWZhdWx0KHNwYWNpbmcpKSAwO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG5cbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXkpO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICA+IC5pY29uIHtcbiAgICAvLyBAaW5jbHVkZSBpY29uLS1yZWNvbG9yKGdyYXksIGRhcmtlcik7XG4gICAgbWFyZ2luLXJpZ2h0OiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4vLypcbi8vIENvbnRhaW5lciBhcm91bmQgdGhlIGNvZGUgYW5kIGhlYWRlci5cblxuLmNvZGUtYmxvY2tfX2NvbnRlbnQge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xuICBtYXgtaGVpZ2h0OiAxNXJlbTtcbn1cblxuXG5cbi8vKlxuLy8gVGhlIGFjdHVhbCBjb2RlIGZvciB0aGUgYXNzb2NpYXRlZCBkZW1vLiBUaGlzIGlzIHdoZXJlIGFsbCBvZiB0aGUgc3R5bGVzXG4vLyBmb3IgdGhlIHN5bnRheCBoaWdobGlnaHRpbmcgc2hvdWxkIGdvLiBUaGlzIHN1YmNvbXBvbmVudCB3cmFwcyBhcm91bmQgdGhlXG4vLyBjb2RlIGFuZCBwcm92aWRlcyB0aGUgcmVxdWlyZWQgc2lkZSBwYWRkaW5nIHNvIHRoYXQgdGhlIGNvZGUgaXMgc2Nyb2xsYWJsZVxuLy8gd2hlbiBpdCBvdmVyZmxvd3MuXG5cbi5jb2RlLWJsb2NrX19jb2RlIHtcbiAgLy8gYm94IG1vZGVsXG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIC8vIE9ubHkgcHJvdmlkZSBoYWxmIHNwYWNpbmcgb24gdGhlIHRvcCAod2l0aCBtYXRjaGluZyBoYWxmIHNwYWNpbmcgb24gdGhlXG4gIC8vIGJvdHRvbSBvZiB0aGUgaGVhZGVyKS5cbiAgcGFkZGluZzogaGFsZihkZWZhdWx0KHNwYWNpbmcpKSBkZWZhdWx0KHNwYWNpbmcpIGRlZmF1bHQoc3BhY2luZyk7XG5cbiAgLy8gdHlwZVxuICBAaW5jbHVkZSBmb250LXNpemUoY29kZS1ibG9jayk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC8vIE5lZWRzIGZ1bGwgcGFkZGluZyB0b3Agd2hlbiB0aGVyZSBpcyBubyBoZWFkZXIuXG4gIC5jb2RlLWJsb2NrOm5vdCguY29kZS1ibG9jay0td2l0aC1oZWFkZXIpOm5vdCguY29kZS1ibG9jay0tY29uZGVuc2VkKTpub3QoLmNvZGUtYmxvY2stLXdpdGgtZGVtbykgJiB7XG4gICAgcGFkZGluZy10b3A6IGRlZmF1bHQoc3BhY2luZyk7XG4gIH1cblxuICAuY29kZS1ibG9jay0td2l0aC1kZW1vOm5vdCguY29kZS1ibG9jay0td2l0aC1oZWFkZXIpICYge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG5cbiAgLy8gRW5zdXJlIHZlcnkgYmFzaWMgc3R5bGVzIGZvciBjb2RlLlxuICA+IGNvZGUge1xuICAgIEBpbmNsdWRlIHR5cGUtLW1vbm9zcGFjZS1mb250LWZhbWlseTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG5cblxuLy8gU3ludGF4IGhpZ2hsaWdodGluZyBzdHlsZXMuXG5cbi5obGpzLXZhbHVlLFxuLmhsanMtc3RyaW5nLFxuLmhsanMtcHJlcHJvY2Vzc29yIHtcbiAgY29sb3I6IGNvbG9yKGJsdWUpXG59XG5cbi5obGpzLXN5bWJvbCB7XG4gIGNvbG9yOiBjb2xvcihibHVlLWRhcmtlcik7XG59XG5cbi5obGpzLWF0X3J1bGUsXG4uaGxqcy1hdHRyaWJ1dGUsXG4uaGxqcy1rZXl3b3JkIHtcbiAgY29sb3I6IGNvbG9yKGdyYXktZGFya2VyKTtcbn1cblxuLmhsanMtY29tbWVudCB7XG4gIGNvbG9yOiByZ2JhKGNvbG9yKGdyYXktZGFyayksIDAuNSk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpY1xufVxuXG4uaGxqcy10YWcsXG4uaGxqcy12YXJpYWJsZSB7XG4gIGNvbG9yOiBjb2xvcihncmF5LWRhcmspO1xufVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi5jb2RlLWJsb2NrLS13aXRoLWRlbW8ge1xuICAuY29kZS1ibG9ja19fY29udGVudCB7XG4gICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICA+IC5jb2RlLWJsb2NrX19oZWFkZXIge1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jb2RlLWJsb2NrX19kZW1vIHtcbiAgcGFkZGluZzogZGVmYXVsdChzcGFjaW5nKTtcbn1cblxuLmNvZGUtYmxvY2tfX2RlbW9fX2NvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29kZS1ibG9ja19faWZyYW1lIHtcbiAgaGVpZ2h0OiAxMGVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgQGluY2x1ZGUgZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbn1cbiIsIi8vICAgICAgIF9fX19fICAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgLyAgLzo6XFwgICAgICAgLyAgL1xcICAgICAgICAvX18vXFwgICAgICAgIC8gIC9cXFxuLy8gICAgIC8gIC86L1xcOlxcICAgICAvICAvOi9fICAgICAgfCAgfDo6XFwgICAgICAvICAvOjpcXFxuLy8gICAgLyAgLzovICBcXDpcXCAgIC8gIC86LyAvXFwgICAgIHwgIHw6fDpcXCAgICAvICAvOi9cXDpcXFxuLy8gICAvX18vOi8gXFxfX1xcOnwgLyAgLzovIC86L18gIF9ffF9ffDp8XFw6XFwgIC8gIC86LyAgXFw6XFxcbi8vICAgXFwgIFxcOlxcIC8gIC86Ly9fXy86LyAvOi8gL1xcL19fLzo6Ojp8IFxcOlxcL19fLzovIFxcX19cXDpcXFxuLy8gICAgXFwgIFxcOlxcICAvOi8gXFwgIFxcOlxcLzovIC86L1xcICBcXDpcXH5+XFxfX1xcL1xcICBcXDpcXCAvICAvOi9cbi8vICAgICBcXCAgXFw6XFwvOi8gICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcICAvOi9cbi8vICAgICAgXFwgIFxcOjovICAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcICAgICAgIFxcICBcXDpcXC86L1xuLy8gICAgICAgXFxfX1xcLyAgICAgICBcXCAgXFw6Oi8gICAgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOjovXG4vLyAgICAgICAgICAgICAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcL1xuLy9cbi8vKlxuLy8gQHBhdHRlcm4gRGVtb1xuLy9cbi8vIEEgY29udGFpbmVyIGFyb3VuZCBhIGRlbW8gKG9yIHNldCBvZiBkZW1vcykgb2YgYSBjb21wb25lbnQuIFRoZSBzdHlsZXMgZm9yXG4vLyB0aGlzIGNvbXBvbmVudCBhcmUgdmVyeSBsaWdodCDigJTCoHRoZXkgYXJlIG1lYW50IG5vdCB0byBpbnRlcmZlcmUgd2l0aCB0aGVcbi8vIGNvbXBvbmVudHMgYmVpbmcgZGVtb25zdHJhdGVkLiBUaGUgSmF2YVNjcmlwdCBjb21wb25lbnQsIGhvd2V2ZXIsIGNvbnRyb2xzXG4vLyBtdWNoIG9mIHRoZSBjaGlsZC1gaWZyYW1lYC1zaWRlIGNvbW11bmljYXRpb24sIGluY2x1ZGluZyBjb21tdW5pY2F0aW5nXG4vLyBoZWlnaHQgY2hhbmdlcywgdXBkYXRpbmcgY2xhc3Nlcywgc2VuZGluZyBtYXJrdXAsIGFuZCBydW5uaW5nIHJlZ2lzdGVyZWRcbi8vIGV2ZW50IGhhbmRsZXJzLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuJGRlbW8tLW1pbi1oZWlnaHQ6IHJlbSgxNjApO1xuXG5cblxuLy8qXG4vLyBBIGNvbnRhaW5lciBmb3IgYSBkZW1vIG9mIGEgY29tcG9uZW50IGFuZCwgb3B0aW9uYWxseSwgdmFyaWF0aW9ucyBvbiB0aGF0XG4vLyBjb21wb25lbnQgdGhhdCB0aGUgZGV2ZWxvcGVyIGhhcyBzcGVjaWZpZWQgdG8gZGlzcGxheSBqb2ludGx5LlxuLy9cbi8vIEBoZWxwZXJcbi8vIDwlIG1hcmt1cCA9IFwiPGRpdiBjbGFzcz0nZm9vJyBzdHlsZT0naGVpZ2h0OiAycmVtOyc+PC9kaXY+XCIgJT5cbi8vIDwlPSBkb2Nrc19kZW1vIDo6T3BlblN0cnVjdC5uZXcoXG4vLyAgIG5hbWU6IFwiZm9vXCIsXG4vLyAgIGNvbXBvbmVudDogOjpPcGVuU3RydWN0Lm5ldyhuYW1lOiBcImZvb1wiLCBtYXJrdXA6IG1hcmt1cCksXG4vLyAgIGpvaW50X3ZhcmlhdGlvbnM6IFtcbi8vICAgICA6Ok9wZW5TdHJ1Y3QubmV3KG5hbWU6IFwiZm9vLS1iYXJcIiwgbWFya3VwOiBtYXJrdXApLFxuLy8gICAgIDo6T3BlblN0cnVjdC5uZXcobmFtZTogXCJmb28tLWJhelwiLCBtYXJrdXA6IG1hcmt1cClcbi8vICAgXVxuLy8gKSAlPlxuXG4uZGVtbyB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbiAgbWluLWhlaWdodDogJGRlbW8tLW1pbi1oZWlnaHQ7XG59XG5cblxuXG4vLypcbi8vIEEgc2luZ2xlIGRlbW8gd2l0aGluIHRoZSByZXNpemFibGUgaWZyYW1lLiBTcGFjaW5nIHN0eWxlcyBhcmUgb25seSBhcHBsaWVkIHRvXG4vLyBzaWJsaW5ncyBvZiBhbm90aGVyIGRlbW8gc2VjdGlvbiBzbyB0aGF0IHRoZSBzZXBhcmF0aW9uIG9ubHkgYXBwbGllcyB0byB0aGVcbi8vIHNlY29uZCB0aHJvdWdoIGxhc3QgZWxlbWVudCBvZiBhIGpvaW50IGRlbW8uXG4vL1xuLy8gVGhlIEphdmFTY3JpcHQgY29tcG9uZW50IHdpbGwgZW5zdXJlIHRoYXQgdGhlIG1pbmltdW0gaGVpZ2h0IG5vdGVkIGFib3ZlXG4vLyB3aWxsIGJlIGV2ZW5seSBhbGxvY2F0ZWQgYW1vbmcgdGhlIGBkZW1vX19zZWN0aW9uYHMgd2l0aGluIGEgYGRlbW9gLlxuLy9cbi8vIFlvdSBjYW4gbWFrZSB1c2Ugb2YgdGhlIGhlbHBlcnMgaW4gYGRlbW8taGVscGVycy5zY3NzYCB0byBwcm92aWRlIGN1c3RvbVxuLy8gc3R5bGVzIGZvciBzZWN0aW9ucyBjb250YWluaW5nIGdpdmVuIGNvbXBvbmVudHMuIFRoZSBKYXZhU2NyaXB0IGNvbXBvbmVudFxuLy8gd2lsbCBmaW5kIHRoZSBsYXN0IHNlY3Rpb24gYW5kIGFzc2lnbiBpdHMgYmFja2dyb3VuZCBjb2xvciB0byB0aGVcbi8vIGJhY2tncm91bmQgb2YgdGhlIGVudGlyZSBkZW1vIHNvIHRoYXQgdGhlcmUgaXMgbm8gZmxhc2ggb2Ygd2hpdGUgb24gdGhlXG4vLyBib3R0b20gb2YgdGhlIGRlbW8gZHVyaW5nIHJlc2l6ZXMuXG5cbi5kZW1vX19zZWN0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XG5cbiAgfiAuZGVtb19fc2VjdGlvbiB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGNvbG9yKGdyYXktbGlnaHQpO1xuICB9XG59XG5cblxuXG4vLypcbi8vIEEgZGVzY3JpcHRvciBmb3IgdGhlIGN1cnJlbnQgc2VjdGlvbidzIGRlbW8uIFRoaXMgaXMgcHJvdmlkZWQgaW4gb3JkZXIgdG9cbi8vIGRpc3Rpbmd1aXNoIHZhcmlhbnRzIHdpdGhpbiBhIGpvaW50IGRlbW8uXG5cbi5kZW1vX19oZWFkZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tcmlnaHQ6IG5lZ2F0aXZlKGhhbGYoZGVmYXVsdChzcGFjaW5nKSkpO1xuICBwYWRkaW5nOiBoYWxmKGRlZmF1bHQoc3BhY2luZykpIGRlZmF1bHQoc3BhY2luZykgMDtcblxuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgX19fICAgICAgICAgX19fICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgX19fX18gICAgICAgIF9fXyAgICAgICAgX19fX19cbi8vICAgICAgIC8gIC9cXCAgICAgICAgL19fL3wgICAgICAgLyAgL1xcICAgICAgICAgICAgICAgICAvICAvXFwgICAgICAvICAvOjpcXCAgICAgIC8gIC9cXCAgICAgIC8gIC86OlxcXG4vLyAgICAgIC8gIC86L18gICAgICB8ICB8OnwgICAgICAvICAvOjpcXCAgICAgICAgICAgICAgIC8gIC86OlxcICAgIC8gIC86L1xcOlxcICAgIC8gIC86L18gICAgLyAgLzovXFw6XFxcbi8vICAgICAvICAvOi8gL1xcICAgICB8ICB8OnwgICAgIC8gIC86L1xcOlxcX19fICAgICBfX18gIC8gIC86L1xcOlxcICAvICAvOi8gIFxcOlxcICAvICAvOi8gL1xcICAvICAvOi8gIFxcOlxcXG4vLyAgICAvICAvOi8gLzovXyAgX198X198OnwgICAgLyAgLzovfi86L19fL1xcICAgLyAgL1xcLyAgLzovICBcXDpcXC9fXy86LyBcXF9fXFw6fC8gIC86LyAvOi9fL19fLzovIFxcX19cXDp8XG4vLyAgIC9fXy86LyAvOi8gL1xcL19fLzo6OjpcXF9fXy9fXy86LyAvOi9cXCAgXFw6XFwgLyAgLzovX18vOi8gXFxfX1xcOlxcICBcXDpcXCAvICAvOi9fXy86LyAvOi8gL1xcICBcXDpcXCAvICAvOi9cbi8vICAgXFwgIFxcOlxcLzovIC86LyAgIH5cXH5+XFw6Ojo6fCAgXFw6XFwvOi8gIFxcICBcXDpcXCAgLzovXFwgIFxcOlxcIC8gIC86L1xcICBcXDpcXCAgLzovXFwgIFxcOlxcLzovIC86L1xcICBcXDpcXCAgLzovXG4vLyAgICBcXCAgXFw6Oi8gLzovICAgICB8fn58Onx+fiBcXCAgXFw6Oi8gICAgXFwgIFxcOlxcLzovICBcXCAgXFw6XFwgIC86LyAgXFwgIFxcOlxcLzovICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6XFwvOi9cbi8vICAgICBcXCAgXFw6XFwvOi8gICAgICB8ICB8OnwgICAgXFwgIFxcOlxcICAgICBcXCAgXFw6Oi8gICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDo6LyAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOjovXG4vLyAgICAgIFxcICBcXDo6LyAgICAgICB8ICB8OnwgICAgIFxcICBcXDpcXCAgICAgXFxfX1xcLyAgICAgIFxcICBcXDo6LyAgICAgIFxcX19cXC8gICAgICBcXCAgXFw6Oi8gICAgICBcXF9fXFwvXG4vLyAgICAgICBcXF9fXFwvICAgICAgICB8X198LyAgICAgICBcXF9fXFwvICAgICAgICAgICAgICAgICBcXF9fXFwvICAgICAgICAgICAgICAgICAgIFxcX19cXC9cblxuLy8qXG4vLyBAcGF0dGVybiBFeHBsb2RlZFxuLy9cbi8vIEFuIGV4cGxvZGVkIHZpZXcgb2YgYSBnaXZlbiBET00gc3RydWN0dXJlIHRoYXQgY2FuIGJlIGZyZWVseSByb3RhdGVkLiBJdFxuLy8gYWxsb3dzIHRoZSB1c2VyIHRvIHNlZSB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb21wb25lbnQgYXMgaXQgaXMgcmVuZGVyZWQsXG4vLyBoZWxwaW5nIHRoZW0gbGVhcm4gYWJvdXQgc3ViY29tcG9uZW50cyB0aGF0IG1ha2UgdXAgdGhlIG92ZXJhbGwgc3RydWN0dXJlLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuLy8qXG4vLyBUaGlzIGlzIHRoZSBiYXNlIGNvbXBvbmVudCBmb3IgYW4gZXhwbG9zaW9uLiBJdCBjb250YWlucyB0aGUgc291cmNlIG1hcmt1cFxuLy8gYW5kIHRoZSBleHBsb2RlZCByZXByZXNlbnRhdGlvbiwgYXMgd2VsbCBhcyBjb21tdW5pY2F0ZXMgb3ZlcmFsbCBzdGF0ZXMgb2Zcbi8vIHRoZSBjb21wb25lbnQgdG8gc3ViY29tcG9uZW50cy5cbi8vXG4vLyBAaGVscGVyXG4vLyA8JT0gZG9ja3NfZXhwbG9kZWQgbWFya3VwOiAlUShcbi8vICAgPGRpdiBjbGFzcz1cImZvb1wiIHN0eWxlPVwicGFkZGluZzogMWVtO1wiPlxuLy8gICAgIDxkaXYgY2xhc3M9XCJmb29fX2JhclwiIHN0eWxlPVwiaGVpZ2h0OiA1ZW07IHBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cbi8vICAgICAgIDxkaXYgY2xhc3M9XCJmb29fX2Jhcl9fYmF6XCIgc3R5bGU9XCJ3aWR0aDogNTAlOyBoZWlnaHQ6IDEwMCU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyBsZWZ0OiAwO1wiPjwvZGl2PlxuLy8gICAgICAgPGRpdiBjbGFzcz1cImZvb19fYmFyX19iYXpcIiBzdHlsZT1cIndpZHRoOiA1MCU7IGhlaWdodDogMTAwJTsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDUwJTtcIj48L2Rpdj5cbi8vICAgICA8L2Rpdj5cbi8vICAgPC9kaXY+XG4vLyApICU+XG5cbi5leHBsb2RlZCB7fVxuXG4uZXhwbG9kZWQtLWlzLWJlaW5nLWluaXRpYWxpemVkIHtcbiAgLmV4cGxvZGVkX19wYW5lIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZTtcbiAgfVxufVxuXG5cblxuLmV4cGxvZGVkX19zb3VyY2UsXG4uZXhwbG9kZWRfX3N0cnVjdHVyZSB7XG4gIHBhZGRpbmc6IGRlZmF1bHQoc3BhY2luZykgZG91YmxlKGRlZmF1bHQoc3BhY2luZykpO1xufVxuXG5cblxuLy8qXG4vLyBUaGUgY29udGFpbmVyIGZvciB0aGUgb3JpZ2luYWwgc291cmNlIG1hcmt1cCBmb3IgdGhlIGNvbXBvbmVudC4gVGhpcyBpc1xuLy8ga2VwdCBhcm91bmQgc28gdGhhdCBlYWNoIHBhbmUgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSBzb3VyY2UgRE9NIG5vZGUgZm9yXG4vLyBhbnkgY29uc3VtZXIgb2YgdGhlIGV4cGxvc2lvbiBwYW5lIHNlbGVjdGlvbiB0byBkaXNwbGF5IHNvdXJjZSBzdHJ1Y3R1cmVcbi8vIGRldGFpbHMuXG5cbi5leHBsb2RlZF9fc291cmNlIHt9XG5cbi8vKlxuLy8gQSBjb250YWluZXIgdGhhdCB3cmFwcyBleGFjdGx5IGFyb3VuZCB0aGUgc291cmNlIG1hcmt1cC4gVGhpcyBleHRyYVxuLy8gY29udGFpbmVyIChjb3JyZXNwb25kaW5nIHRvIHRoZSBzdHJ1Y3R1cmUncyBgZXhwbG9kZWRfX3N0cnVjdHVyZV9fY29udGVudGApXG4vLyBpcyByZXF1aXJlZCB0byBzaW1wbGlmeSBhYnNvbHV0ZSBwb3NpdGlvbmluZyBjYWxjdWxhdGlvbnMgZm9yIHRoZVxuLy8gSmF2YVNjcmlwdCBjb21wb25lbnQuXG5cbi5leHBsb2RlZF9fc291cmNlX19jb250ZW50IHt9XG5cblxuXG4vLypcbi8vIFRoZSBjb250YWluZXIgYXJvdW5kIHRoZSBleHBsb2RlZCByZXByZXNlbnRhdGlvbi4gVGhpcyBjb250YWluZXIgcHJvdmlkZXNcbi8vIHRoZSBwZXJzcGVjdGl2ZSByZXF1aXJlZCB0byBtYWtlIHRoZSBjb21wb25lbnQgdGhyZWUtZGltZW5zaW9uYWwuXG5cbi5leHBsb2RlZF9fc3RydWN0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwZXJzcGVjdGl2ZTogMjAwMHB4O1xuICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cblxuXG4vLypcbi8vIFRoZSBjb250YWluZXIgdGhhdCB3cmFwcyBleGFjdGx5IGFyb3VuZCB0aGUgZXhwbG9kZWQgc3RydWN0dXJlLiBUaGlzIGV4dHJhXG4vLyBjb250YWluZXIgZXhpc3RzIHNvIHRoYXQgYGV4cGxvZGVkX19zdHJ1Y3R1cmVgIGNhbiBwcm92aWRlIHNvbWUgcGFkZGluZy9cbi8vIGhvcml6b250YWwgY2VudGVyaW5nIG9mIHRoZSBleHBsb2RlZCBzdHJ1Y3R1cmUgd2hpbGUgYWxzbyBwcm92aWRpbmcgYVxuLy8gc2ltcGxlIHJlbGF0aXZlIGNvbnRhaW5lciAodGhpcyBzdWJjb21wb25lbnQpIGZyb20gd2hpY2ggdG8gbWFrZSBhYnNvbHV0ZVxuLy8gcG9zaXRpb25pbmcgY2FsY3VsYXRpb25zLlxuXG4uZXhwbG9kZWRfX3N0cnVjdHVyZV9fY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cblxuXG4vLypcbi8vIFRoZSBjb250YWluZXIgZm9yIGFsbCBjb250cm9scyAocmFuZ2Ugc2xpZGVycykgdGhhdCBjYW4gYmUgdXNlZCB0b1xuLy8gbWFuaXB1bGF0ZSB0aGUgY29tcG9uZW50LlxuXG4uZXhwbG9kZWRfX2NvbnRyb2wtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW46IDNyZW0gbmVnYXRpdmUoZGVmYXVsdChzcGFjaW5nKSkgMDtcbn1cblxuLy8qXG4vLyBBIGNvbnRhaW5lciBmb3IgYSBzaW5nbGUgY29udHJvbCB0aGF0IG1hbmlwdWxhdGVzIHRoZSBjb21wb25lbnQuXG5cbi5leHBsb2RlZF9fY29udHJvbCB7XG4gIGZsZXg6IDEgMSAwO1xuICBtYXJnaW4tbGVmdDogZGVmYXVsdChzcGFjaW5nKTtcblxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBBIHNpbmdsZSBwYW5lIHJlcHJlc2VudGluZyBhIERPTSBub2RlIGluIHRoZSBzb3VyY2UgbWFya3VwLiBUaGVzZSBwYW5lcyBhcmVcbi8vIGFic29sdXRlbHkgcG9zaXRpb25lZCBieSB0aGUgSmF2YVNjcmlwdCBwYXJ0IG9mIHRoaXMgY29tcG9uZW50cyBhbmQsXG4vLyBsaWtld2lzZSwgYXJlIHJvdGF0ZWQgaW4gdGhyZWUtZGltZW5zaW9uYWwgc3BhY2UgYXMgdGhlIHVzZXIgZHJhZ3Mgb3ZlciB0aGVcbi8vIGNvbXBvbmVudC5cblxuLmV4cGxvZGVkX19wYW5lIHtcbiAgLy8gcG9zaXRpb25cbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIC8vIGJveCBtb2RlbFxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcblxuICAvLyBiYWNrZHJvcFxuICBAaW5jbHVkZSBkZWZhdWx0KGJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKHVpLWNvbG9yKGdyYXksIGRhcmtlciksIDAuNik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodWktY29sb3IoZ3JheSksIDAuNSk7XG5cbiAgLy8gdHJhbnNpdGlvblxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihibHVlKTtcbiAgfVxufVxuXG4vLypcbi8vIFRoZSBKYXZhU2NyaXB0IGFkZHMgdGhpcyBzdGF0ZSB0byBwYW5lcyB0aGF0IGhhdmUgYmVlbiBjbGlja2VkLyB0YXBwZWQgYnlcbi8vIHRoZSB1c2VyLiBUaGUgYWN0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY3RpdmUgcGFuZSBpcyBkZWZlcnJlZCB0byBvdGhlclxuLy8gY29tcG9uZW50cyAodGhpcyBpcyBkb25lIGJ5IGZpcmluZyBhbiBldmVudCB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoaXNcbi8vIHNlbGVjdGVkIHBhbmUpLlxuLy9cbi8vIEBkZW1vX3R5cGUgbm9uZVxuLy8gQHNldF9ieSBFeHBsb2RlZC5jbGlja1xuXG4uZXhwbG9kZWRfX3BhbmUtLWlzLXNlbGVjdGVkIHtcbiAgJiwgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdWktY29sb3IoYmx1ZSwgZGFyayk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuIiwiLmZpZWxkIHtcbiAgQGluY2x1ZGUgZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoZ3JheSwgZGFyayk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xufVxuXG4kZmllbGQtLXN3aXRjaC0tc2l6ZTogbXVsdGlwbHkoMS41LCBkZWZhdWx0KHNwYWNpbmcpKTtcblxuLmZpZWxkLS1zd2l0Y2gge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gID4gLmxhYmVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiBtdWx0aXBseSgxLjUsICRmaWVsZC0tc3dpdGNoLS1zaXplKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZC0tc3dpdGNoLS1zaXplO1xuICAgIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXN0KTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogbXVsdGlwbHkoJGZpZWxkLS1zd2l0Y2gtLXNpemUsIDAuNyk7XG4gICAgICB3aWR0aDogbXVsdGlwbHkoMC4zLCAkZmllbGQtLXN3aXRjaC0tc2l6ZSk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IGhhbGYoJGZpZWxkLS1zd2l0Y2gtLXNpemUpO1xuICAgICAgbGVmdDogaGFsZigkZmllbGQtLXN3aXRjaC0tc2l6ZSk7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdWktY29sb3IoYmx1ZSwgZGFya2VyKTtcbiAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHVpLWNvbG9yKGJsdWUsIGRhcmtlcik7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNjAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkZmllbGQtLXN3aXRjaC0tc2l6ZTtcbiAgICAgIHdpZHRoOiAkZmllbGQtLXN3aXRjaC0tc2l6ZTtcbiAgICAgIGJhY2tncm91bmQ6IHVpLWNvbG9yKGdyYXkpO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwOyBsZWZ0OiAwO1xuICAgICAgQGluY2x1ZGUgZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cblxuICA+IC5maWVsZF9fc3dpdGNoOmNoZWNrZWQgKyAubGFiZWw6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB1aS1jb2xvcihibHVlKTtcbiAgfVxuXG4gID4gLmZpZWxkX19zd2l0Y2g6Y2hlY2tlZCArIC5sYWJlbDphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICA+IC5maWVsZF9fc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3BhY2l0eTogMC4xO1xuICB9XG5cbiAgKyAuZmllbGQtLXN3aXRjaCB7XG4gICAgbWFyZ2luLXRvcDogZGVmYXVsdChzcGFjaW5nKTtcbiAgfVxufVxuXG4uZmllbGRfX2ljb24ge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgZm9udC1zaXplOiAwO1xuXG4gID4gLmljb24ge1xuICAgIEBpbmNsdWRlIGljb24tLXJlY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgfVxufVxuXG4uZmllbGRfX2lucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IGRlZmF1bHQoY29udHJvbC1zaXplKTtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIEBpbmNsdWRlIHR5cGUtLWRlZmF1bHQtZm9udC1mYW1pbHk7XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHJnYmEodWktY29sb3IoZ3JheSwgZGFya2VyKSwgMC41KTtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogcmdiYSh1aS1jb2xvcihncmF5LCBkYXJrZXIpLCAwLjUpO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4iLCIvLypcbi8vIEBwYXR0ZXJuIFBhZ2UgSGVhZGVyXG4vLyBAZ3JvdXAgUGFydGlhbHNcbi8vXG4vLyBBIGdyb3VwIG9mIGhlYWRpbmdzIGFuZCBvdGhlciBwYWdlLWxldmVsIGluZm9ybWF0aW9uIHRoYXQgYXBwZWFycyBhdCB0aGVcbi8vIHRvcCBvZiBhIGdpdmVuIHBhZ2Ugb3Igc2VjdGlvbi5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuLy8qXG4vLyBAbWFya3VwXG4vLyA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbi8vICAgPGRpdiBjbGFzcz1cImdyaWQgZ3JpZC0tdmVydGljYWxseS1jZW50ZXJlZFwiPlxuLy8gICAgIDxkaXYgY2xhc3M9XCJncmlkX19pdGVtXCI+XG4vLyAgICAgICA8aDEgY2xhc3M9XCJ0eXBlIHR5cGUtLWhlYWRpbmcgdHlwZS0taGVhZGluZy0xXCI+VGhlIHRpdGxlPC9oMT5cbi8vICAgICA8L2Rpdj5cbi8vXG4vLyAgICAgPGRpdiBjbGFzcz1cImdyaWRfX2l0ZW0gZ3JpZF9faXRlbS0tbm8tZmxleFwiPlxuLy8gICAgICAgPGJ1dHRvbiBjbGFzcz1cImRvY2tzLWJ1dHRvbiBkb2Nrcy1idXR0b24tLWRhcmtcIj5BY3Rpb248L2J1dHRvbj5cbi8vICAgICA8L2Rpdj5cbi8vICAgPC9kaXY+XG4vLyA8L2hlYWRlcj5cblxuLnBhZ2UtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoZ3JheSk7XG4gIHBhZGRpbmc6IGRlZmF1bHQoc3BhY2luZyk7XG4gIHBhZGRpbmctYm90dG9tOiBkZWZhdWx0KHNwYWNpbmcpO1xuICBtaW4taGVpZ2h0OiByZW0oNjYpO1xuXG4gIC50eXBlLS1oZWFkaW5nLTEge1xuICAgIG1hcmdpbjogLTAuNWVtIDA7XG4gIH1cbn1cbiIsIiRpbmxpbmUtZ3JvdXAtLXNwYWNpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG5cbi5pbmxpbmUtZ3JvdXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IG5lZ2F0aXZlKCRpbmxpbmUtZ3JvdXAtLXNwYWNpbmcpO1xuICBtYXJnaW4tYm90dG9tOiBuZWdhdGl2ZSgkaW5saW5lLWdyb3VwLS1zcGFjaW5nKTtcbn1cblxuLmlubGluZS1ncm91cF9faXRlbSB7XG4gIG1hcmdpbi1yaWdodDogJGlubGluZS1ncm91cC0tc3BhY2luZztcbiAgbWFyZ2luLWJvdHRvbTogJGlubGluZS1ncm91cC0tc3BhY2luZztcbn1cbiIsIi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fX1xuLy8gICAgICAgICAgICAgICAgICAgX19fICAgICAgICAvICAvXFwgICAgICAgIF9fX1xuLy8gICAgICAgICAgICAgICAgICAvICAvXFwgICAgICAvICAvOi9fICAgICAgLyAgL1xcXG4vLyAgICBfX18gICAgIF9fXyAgLyAgLzovICAgICAvICAvOi8gL1xcICAgIC8gIC86L1xuLy8gICAvX18vXFwgICAvICAvXFwvX18vOjpcXCAgICAvICAvOi8gLzo6XFwgIC8gIC86L1xuLy8gICBcXCAgXFw6XFwgLyAgLzovXFxfX1xcL1xcOlxcX18vX18vOi8gLzovXFw6XFwvICAvOjpcXFxuLy8gICAgXFwgIFxcOlxcICAvOi8gICAgXFwgIFxcOlxcL1xcICBcXDpcXC86L34vOi9fXy86L1xcOlxcXG4vLyAgICAgXFwgIFxcOlxcLzovICAgICAgXFxfX1xcOjovXFwgIFxcOjovIC86L1xcX19cXC8gIFxcOlxcXG4vLyAgICAgIFxcICBcXDo6LyAgICAgICAvX18vOi8gIFxcX19cXC8gLzovICAgICAgXFwgIFxcOlxcXG4vLyAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgICAvX18vOi8gICAgICAgIFxcX19cXC9cbi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxfX1xcL1xuXG4vLypcbi8vIEBwYXR0ZXJuIExpc3Rcbi8vXG4vLyBBIGxpc3QgYWxsb3dzIHlvdSB0byBwcmVzZW50IGEgc2V0IG9mIHNlbGVjdGFibGUgaXRlbXMgdmVydGljYWxseS4gVGhlc2Vcbi8vIGxpc3RzIGNhbiBiZSBiZSBzZXBhcmF0ZWQgaW50byBhbnkgbnVtYmVyIG9mIHN1Ymxpc3RzLCBhbmQgdHdvIGxldmVscyBvZlxuLy8gc3ViaGVhZGluZ3MgYXJlIGF2YWlsYWJsZSAoc28sIHlvdSBjYW4gaGF2ZSBhIHN1Ymxpc3Qgd2l0aGluIGEgc3VibGlzdCkuXG4vL1xuLy8gVGhlIHN1Ymxpc3RzIGNhbiBvcHRpb25hbGx5IGFsbG93IGEgc3ViaGVhZGluZyB0byB0b2dnbGUgdGhlIHZpc2liaWxpdHkgb2Zcbi8vIHRoZSBhc3NvY2lhdGVkIHN1Ymxpc3QuIEl0IGFsc28gc3VwcG9ydHMgdGhlIGFiaWxpdHkgdG8gZmlsdGVyIHRoZSBjb250ZW50c1xuLy8gb2YgYSBsaXN0IHRvIG9ubHkgaXRlbXMgbWF0Y2hpbmcgYSBnaXZlbiBzdHJpbmcsIGhpZGluZyBzdWJoZWFkaW5ncyBhc1xuLy8gbmVjZXNzYXJ5LlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuLy8qXG4vLyBUaGUgY29yZSBjb250YWluZXIgZm9yIGEgbGlzdC4gTGlzdCBpdGVtcyBjYW4gZ28gZGlyZWN0bHkgaW4gdGhpcyBjb250YWluZXJcbi8vIG9yLCBpZiB5b3Ugd2FudCB0byBwcm92aWRlIHRvZ2dsZS1hYmxlIG9yIGZpbHRlci1hYmxlIHN1Ymxpc3RzLCB3aXRoaW4gYVxuLy8gc3VibGlzdC5cblxuLmxpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IGRlZmF1bHQoc3BhY2luZykgMCBkb3VibGUoZGVmYXVsdChzcGFjaW5nKSk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgLnR5cGUtLWhlYWRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogZGVmYXVsdChzcGFjaW5nKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBkZWZhdWx0KHNwYWNpbmcpO1xuICB9XG5cbiAgLnBvcG92ZXIgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogZGVmYXVsdChzcGFjaW5nKTtcbiAgfVxufVxuXG4vLypcbi8vIEFuIGluZGl2aWR1YWwgaXRlbSB3aXRoaW4gYSBsaXN0LiBUaGVzZSBpdGVtcyBoYXZlIGhvdmVyLCBmb2N1cywgYW5kIGFjdGl2ZVxuLy8gc3RhdGVzIHNvIHRoYXQgaXQgaXMgY2xlYXIgd2hhdCBpdGVtIGlzIGFjdGlvbmFibGUvIGJlaW5nIGFjdGlvbmVkLlxuXG4ubGlzdF9faXRlbSB7XG4gIC8vIGJveCBtb2RlbFxuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogcXVhcnRlcihkZWZhdWx0KHNwYWNpbmcpKSBkZWZhdWx0KHNwYWNpbmcpO1xuXG4gIC8vIGJhY2tkcm9wXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyB0eXBlXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHVpLWNvbG9yKGdyYXksIGRhcmtlc3QpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihibHVlKTtcbiAgICBjb2xvcjogdWktY29sb3IoYmx1ZSwgZGFya2VyKTtcbiAgfVxufVxuXG4vLypcbi8vIEFuIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgYWN0aXZlIEZvciBleGFtcGxlLCBpbiB0aGUgc2lkZWJhciwgdGhpcyBjbGFzcyBpc1xuLy8gdXNlZCBmb3IgdGhlIGl0ZW0gcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50bHktYWN0aXZlIHBhdHRlcm4uXG5cbi5saXN0X19pdGVtLS1pcy1hY3RpdmUge1xuICAmLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihibHVlKTtcbiAgICBjb2xvcjogdWktY29sb3IoYmx1ZSwgZGFya2VyKTtcbiAgfVxufVxuXG4vLypcbi8vIEEgbGlzdCBpdGVtIHRoYXQgaXMgaW5kZW50ZWQgb24gdGhlIGxlZnQgdG8gaW5kaWNhdGUgdGhhdCBpdCBpcyByZWxhdGVkIHRvXG4vLyB0aGUgY2xvc2VzdCwgbm9uLWluZGVudGVkIGl0ZW0gYWJvdmUgaXQuXG5cbi5saXN0X19pdGVtLS1pbmRlbnRlZCB7XG4gIHBhZGRpbmctbGVmdDogY2FsYygje2RlZmF1bHQoc3BhY2luZyl9ICsgMmNoKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKCN7ZGVmYXVsdChzcGFjaW5nKX0gKyAxY2gpO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKHVpLWNvbG9yKGJsYWNrKSwgMC4wNyk7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQ6YmVmb3JlIHtcbiAgICBoZWlnaHQ6IDg1JTtcbiAgfVxuXG4gIC5saXN0X19pdGVtOm5vdCgubGlzdF9faXRlbS0taW5kZW50ZWQpICsgJjpiZWZvcmUge1xuICAgIHRvcDogMTUlO1xuICAgIGhlaWdodDogODUlO1xuICB9XG59XG5cbi8vKlxuLy8gQSBzdWJzZXQgb2YgaXRlbXMgdGhhdCBoYXZlIHRoZWlyIG93biBoYWRpbmcgdG8gZGlzdGluZ3Vpc2ggdGhlbS4gVGhpc1xuLy8gc3ViY29tcG9uZW50IGNhbiBjb250YWluIGFueSBudW1iZXIgb2YgaXRlbXMgYW5kLyBvciBvdGhlciBzdWJsaXN0cy4gVGhpc1xuLy8gZ3JvdXBpbmcgYWxzbyBhbGxvd3MgdGhlIFtgRmlsdGVyYWJsZWBdKEBsaW5rIGZpbHRlcmFibGUpIGNvbXBvbmVudCB0b1xuLy8gYWNjdXJhdGVseSBoaWRlIHN1YnNldHMgb2YgdGhlIGxpc3QsIGluY2x1ZGluZyBoZWFkaW5ncyB3aXRoaW4gYSBncm91cFxuLy8gd2hlcmUgYWxsIGl0ZW1zIGFyZSBoaWRkZW4uXG5cbi5saXN0X19ncm91cCB7fVxuXG5cblxuLy8qXG4vLyBBIGhvcml6b250YWwgbGlzdCBvZiBsaW5rcyBzZXBhcmF0ZWQgYnkgc2xhc2hlcy5cblxuLmxpbmstbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgICY6YWZ0ZXIge1xuICAgICAgJGxpbmstbGlzdF9faXRlbS0tc2VwYXJhdG9yLWhlaWdodDogODAlO1xuXG4gICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAvLyBwb3NpdGlvblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBoYWxmKDEwMCUgLSAkbGluay1saXN0X19pdGVtLS1zZXBhcmF0b3ItaGVpZ2h0KTtcbiAgICAgIHJpZ2h0OiAtMXB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuXG4gICAgICAvLyBib3ggbW9kZWxcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAkbGluay1saXN0X19pdGVtLS1zZXBhcmF0b3ItaGVpZ2h0O1xuXG4gICAgICAvLyBiYWNrZHJvcFxuICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgcmdiYSh1aS1jb2xvcihncmF5LCBkYXJrZXN0KSwgMC4xKTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8qXG4vLyBBbiBpbmRpdmlkdWFsIGxpc3Qgd2l0aGluIGEgbGluayBsaXN0LiBUaGlzIGNsYXNzIHNob3VsZCBnbyBvbiB0aGUgYWN0dWFsXG4vLyBhbmNob3IgKG9yIGBidXR0b25gLCBpZiB0aGVyZSBpcyBubyByZWFzb25hYmxlIGBocmVmYCkgZWxlbWVudCBzbyB0aGF0XG4vLyB0aGVyZSBpcyBhcyBsYXJnZSBhIGhpdCB0YXJnZXQgYXMgcG9zc2libGUuXG4vL1xuLy8gRWFjaCBpdGVtIChleGNlcHQgZm9yIHRoZSBsYXN0IG9uZSkgaXMgZ2l2ZW4gYSBzbWFsbCBzZXBhcmF0b3Igc28gdGhhdCBpdCBpc1xuLy8gY2xlYXIgd2hlcmUgdGhlIGhpdCBhcmVhcyBlbmQuIFRoaXMgaXMgcGxhY2VkIG9uIHRoZSBjb250YWluaW5nIGBsaWAgc2luY2Vcbi8vIHRoZSBgbGluay1saXN0X19pdGVtYCBjYW4gYmUgYSBgYnV0dG9uYC5cbi8vXG4vLyBJbiB0aGUgZGFyayB0aGVtZSwgdGhlIGNvbG9ycyBmb3IgZWFjaCBsaXN0IGl0ZW0gaW52ZXJ0LlxuXG4ubGluay1saXN0X19pdGVtIHtcbiAgLy8gcG9zaXRpb25cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJveCBtb2RlbFxuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiBxdWFydGVyKGRlZmF1bHQoc3BhY2luZykpIGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG5cbiAgLy8gYmFja2Ryb3BcbiAgQGluY2x1ZGUgcmVtb3ZlLWJyb3dzZXItc3R5bGluZztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBvcGFjaXR5OiAwLjY7XG5cbiAgLy8gdHlwZVxuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXIpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cblxuXG4vLypcbi8vIEEgbGlzdCB0aGF0IHNpbXBseSBhcnJhbmdlcyB0aGUgY29udGFpbmVkIGBsaWBzIHdpdGggc29tZSBzcGFjaW5nIGJldHdlZW5cbi8vIHRoZW0uXG5cbi51bnN0eWxlZC1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gID4gbGkge1xuICAgIG1hcmdpbjogZG91YmxlKGRlZmF1bHQoc3BhY2luZykpIDA7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyAgICAgICAgX19fICAgICAgICAgICAgICAgICAgX19fICAgICAgICAgICAgICAgICAgIF9fX1xuLy8gICAgICAgL19fL1xcICAgICAgX19fICAgICAgIC9fXy98ICAgICAgX19fICAgICAgICAvX18vXFxcbi8vICAgICAgfCAgfDo6XFwgICAgLyAgL1xcICAgICB8ICB8OnwgICAgIC8gIC9cXCAgICAgICBcXCAgXFw6XFxcbi8vICAgICAgfCAgfDp8OlxcICAvICAvOi8gICAgIHwgIHw6fCAgICAvICAvOi8gICAgICAgIFxcICBcXDpcXFxuLy8gICAgX198X198OnxcXDpcXC9fXy86OlxcICAgX198X198OnwgICAvX18vOjpcXCAgICBfX19fX1xcX19cXDpcXFxuLy8gICAvX18vOjo6OnwgXFw6XFxfX1xcL1xcOlxcXy9fXy86Ojo6XFxfX19cXF9fXFwvXFw6XFxfXy9fXy86Ojo6Ojo6OlxcXG4vLyAgIFxcICBcXDpcXH5+XFxfX1xcLyAgXFwgIFxcOlxcL1xcIH5cXH5+XFw6Ojo6LyAgXFwgIFxcOlxcL1xcICBcXDpcXH5+XFx+flxcL1xuLy8gICAgXFwgIFxcOlxcICAgICAgICAgXFxfX1xcOjovICB8fn58Onx+fiAgICBcXF9fXFw6Oi9cXCAgXFw6XFwgIH5+flxuLy8gICAgIFxcICBcXDpcXCAgICAgICAgL19fLzovICAgfCAgfDp8ICAgICAgL19fLzovICBcXCAgXFw6XFxcbi8vICAgICAgXFwgIFxcOlxcICAgICAgIFxcX19cXC8gICAgfCAgfDp8ICAgICAgXFxfX1xcLyAgICBcXCAgXFw6XFxcbi8vICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgfF9ffC8gICAgICAgICAgICAgICAgIFxcX19cXC9cbi8vXG4vLyBNaXhpbnMgYXJlIHVzZWQgdG8gaW5jbHVkZSBjb21tb24gZnVuY3Rpb25hbGl0eSBpbiBjb21wb25lbnRzLlxuLy8gVXNlIHRoZXNlIG92ZXIgcGxhY2Vob2xkZXJzIGV2ZW4gd2hlbiBubyB2YXJpYWJsZXMgYXJlIHJlcXVpcmVkOlxuLy8gYEBleHRlbmRzYCBpcyBtb3JlIHRyb3VibGUgdGhhbiBpdCdzIHdvcnRoLCBhbmQgcHJvcGVyIGNvbXByZXNzaW9uXG4vLyBtb3N0bHkgc29sdmVzIHRoZSBwcm9ibGVtIG9mIGR1cGxpY2F0ZWQgbWFya3VwIGZyb20gbWl4aW5zLlxuXG4vLyAgICBfX18gX19fIF9fXyBfX18gXyAgICAgIF9fXyAgIF9fXG4vLyAgIHwgICBcXF8gXy8gX198IF8gXFwgfCAgICAvX1xcIFxcIC8gL1xuLy8gICB8IHwpIHwgfFxcX18gXFwgIF8vIHxfXyAvIF8gXFwgViAvXG4vLyAgIHxfX18vX19ffF9fXy9ffCB8X19fXy9fLyBcXF9cXF98XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQbGFjZWhvbGRlcnMgcHJvdmlkaW5nIGNvbW1vbiBkaXNwbGF5LyBwb3NpdGlvbmluZyBwYXR0ZXJucy5cblxuQG1peGluIGNvbXBvc2l0ZS1sYXllciB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWl4aW4gY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTsgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuQG1peGluIGNvdmVyLWFsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwOyBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWl4aW4gcmVtb3ZlLWJyb3dzZXItc3R5bGluZyB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5cblxuLy8gICAgX19fX18gX19fICBfICAgXyAgX19fIF8gIF9cbi8vICAgfF8gICBfLyBfIFxcfCB8IHwgfC8gX198IHx8IHxcbi8vICAgICB8IHx8IChfKSB8IHxffCB8IChfX3wgX18gfFxuLy8gICAgIHxffCBcXF9fXy8gXFxfX18vIFxcX19ffF98fF98XG4vL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQbGFjZWhvbGRlcnMgdG8gaGVscCB3aXRoIHRvdWNoIGRldmljZXMuXG5cbkBtaXhpbiB0b3VjaC1zY3JvbGwge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xufVxuXG5cblxuLy8gICAgX19fX19fXyAgIF9fX19fIF9fX1xuLy8gICB8XyAgIF9cXCBcXCAvIC8gXyBcXCBfX3xcbi8vICAgICB8IHwgIFxcIFYgL3wgIF8vIF98XG4vLyAgICAgfF98ICAgfF98IHxffCB8X19ffFxuLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUGxhY2hvbGRlcnMgdG8gYWRkIG5pY2UgZmVhdHVyZXMgdG8gdGV4dCBjb250ZW50LlxuXG5AbWl4aW4gd29yZC13cmFwIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgaHlwaGVuczogYXV0bztcbn1cblxuQG1peGluIGVsbGlwc2lzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIuZGV0YWlscy1zaGVldCB7XG4gIG1heC13aWR0aDogOTAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlOyBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMC40cmVtO1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKGNvbG9yKGJsYWNrKSwgMC4zKTtcbiAgei1pbmRleDogMjA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kZXRhaWxzLXNoZWV0LS1pcy1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRldGFpbHMtc2hlZXRfX292ZXJsYXkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKGNvbG9yKGJsYWNrKSwgMC45KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7IGxlZnQ6IDA7XG4gIHotaW5kZXg6IDE5O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGV0YWlscy1zaGVldF9fb3ZlcmxheS0taXMtYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cblxuLmRldGFpbHMtc2hlZXRfX3NlY3Rpb24ge1xuICBwYWRkaW5nOiAxcmVtO1xuXG4gICsgLmRldGFpbHMtc2hlZXRfX3NlY3Rpb24ge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcihza3ktZGFyayk7XG4gIH1cbn1cblxuLmRldGFpbHMtc2hlZXRfX25hbWUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHNreS1saWdodCk7XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjI1ZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVlbTtcbiAgY29sb3I6IGNvbG9yKHNsYXRlLWxpZ2h0KTtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25vc3BhY2U7XG4gIG1hcmdpbjogMDtcbn1cblxuLmRldGFpbHMtc2hlZXRfX3N1YnRpdGxlIHtcbiAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IGNvbG9yKHNsYXRlLWxpZ2h0KTtcbiAgb3BhY2l0eTogMC4zO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuIiwiLy8qXG4vLyBAcGF0dGVybiBOb3RpY2Vcbi8vXG4vLyBBIHNpbXBsZSwgY29sb3JlZCBjb250YWluZXIgYXJvdW5kIHRoYXQgZW1waGFzaXplcyB0aGUgY29udGFpbmVkIHRleHQuIFRoaXNcbi8vIHNob3VsZCBiZSB1c2VkIGZvciBpbXBvcnRhbnQgZGV0YWlscyBhYm91dCBhIHN5bWJvbDsgZm9yIGV4YW1wbGUsIHRvXG4vLyBpbmRpY2F0ZSB0aGF0IGEgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgb3IgZXhwZXJpbWVudGFsLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cbi8vKlxuLy8gQSByZWd1bGFyIG5vdGljZS5cbi8vXG4vLyBAbWFya3VwXG4vLyA8ZGl2IGNsYXNzPVwibm90aWNlXCI+XG4vLyAgIDxkaXYgY2xhc3M9XCJ0eXBlLWNvbnRhaW5lclwiPlxuLy8gICAgIDxwPlBsZWFzZSBkb24ndCB1c2UgdGhpcyBjb21wb25lbnQgYW55bW9yZSEgSXQncyBubyBnb29kLjwvcD5cbi8vICAgPC9kaXY+XG4vLyA8L2Rpdj5cblxuLm5vdGljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKHllbGxvdyk7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgY29sb3I6IHVpLWNvbG9yKHllbGxvdywgZGFyayk7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShwYXJhZ3JhcGgtc21hbGwpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLnR5cGUsIHAsIGNvZGUge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC50eXBlLS1oZWFkaW5nIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG59XG5cbi8vKlxuLy8gQSBub3RpY2UgdGhhdCBpbmRpY2F0ZXMgc29tZXRoaW5nIGlzIG5ldyBhYm91dCB0aGUgYXR0YWNoZWQgc3ltYm9sLlxuLy9cbi8vIEBkZW1vX3R5cGUgam9pbnRcblxuLm5vdGljZS0tbmV3IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoYmx1ZSk7XG4gIGNvbG9yOiB1aS1jb2xvcihibHVlLCBkYXJrZXIpO1xufVxuIiwiIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICBOZXh0IFBvcG92ZXJcbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4kcG9wb3Zlci10b29sdGlwLXNpemU6IHJlbSgxMCk7XG4kcG9wb3Zlci1tYXgtd2lkdGg6IHJlbSg0MDApO1xuJHBvcG92ZXItbWluLXdpZHRoOiByZW0oMTUwKTtcbiRwb3BvdmVyLW1heC13aWR0aC1wZXJjZW50OiAxMDAlO1xuJHBvcG92ZXItbWF4LWhlaWdodDogcmVtKDgwMCk7XG4kcG9wb3Zlci12ZXJ0aWNhbC1tYXJnaW46IGhhbGYoZGVmYXVsdChzcGFjaW5nKSkgKyAoJHBvcG92ZXItdG9vbHRpcC1zaXplIC8gMik7XG4kcG9wb3Zlci1iYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcih3aGl0ZSk7XG4kcG9wb3Zlci1zZWN0aW9uLWJvcmRlcjogMXB4IHNvbGlkIGNvbG9yKGdyYXktbGlnaHQpO1xuJHBvcG92ZXItYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoY29sb3Ioc2xhdGUpLCAwLjA1KSwgMCAycHggN3B4IDFweCByZ2JhKGNvbG9yKHNsYXRlKSwgMC4xNik7XG5cblxuXG4ucG9wb3Zlcl9fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgQGluY2x1ZGUgei1pbmRleChwb3BvdmVyLXJlc3RpbmcsIHBhZ2UpO1xuXG4gID4gKjpmb2N1cyB7IG91dGxpbmU6IDA7IH1cbn1cblxuLnBvcG92ZXJfX2NvbnRhaW5lci0tY29udGFpbnMtYWN0aXZlLXBvcG92ZXIge1xuICBAaW5jbHVkZSB6LWluZGV4KHBvcG92ZXItYWN0aXZlLCBwYWdlKTtcbn1cblxuLnBvcG92ZXJfX2NvbnRhaW5lci0taXMtZGVhY3RpdmF0aW5nIHtcbiAgQGluY2x1ZGUgei1pbmRleChwb3BvdmVyLWRlYWN0aXZhdGluZywgcGFnZSk7XG59XG5cbi5wb3BvdmVyX19jb250YWluZXItLWZ1bGwtd2lkdGgge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5cblxuLnBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMTAwJTtcblxuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogJHBvcG92ZXItbWF4LXdpZHRoLXBlcmNlbnQ7XG4gIG1hcmdpbjogJHBvcG92ZXItdmVydGljYWwtbWFyZ2luIGRlZmF1bHQoc3BhY2luZyk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJHBvcG92ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgb3BhY2l0eTogMDtcbiAgYm94LXNoYWRvdzogJHBvcG92ZXItYm94LXNoYWRvdztcblxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKC4yNywxLjQxLC41MywuOTcpLCBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cblxuLnBvcG92ZXItLWlzLWFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5wb3BvdmVyLS1pcy1wb3NpdGlvbmVkLWFib3ZlIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDEwMCU7XG5cbiAgLnBvcG92ZXJfX3Rvb2x0aXAge1xuICAgIHRvcDogMTAwJTtcblxuICAgICY6YWZ0ZXIgeyB0b3A6ICRwb3BvdmVyLXRvb2x0aXAtc2l6ZSAvIC0yOyB9XG4gIH1cbn1cblxuXG4ucG9wb3Zlcl9fdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6ICgtMiAqICRwb3BvdmVyLXRvb2x0aXAtc2l6ZSk7XG5cbiAgd2lkdGg6ICgkcG9wb3Zlci10b29sdGlwLXNpemUgKiAyKTtcbiAgaGVpZ2h0OiAoJHBvcG92ZXItdG9vbHRpcC1zaXplICogMik7XG4gIG1hcmdpbi1sZWZ0OiAoJHBvcG92ZXItdG9vbHRpcC1zaXplICogLTEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAoJHBvcG92ZXItdG9vbHRpcC1zaXplICogMyAvIDIpO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICBtYXJnaW4tbGVmdDogKCRwb3BvdmVyLXRvb2x0aXAtc2l6ZSAvIC0yKTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJHBvcG92ZXItdG9vbHRpcC1zaXplO1xuICAgIHdpZHRoOiAkcG9wb3Zlci10b29sdGlwLXNpemU7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9wb3Zlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRwb3BvdmVyLWJveC1zaGFkb3c7XG4gIH1cbn1cblxuXG5cbi5wb3BvdmVyX19jb250ZW50LXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6ICRwb3BvdmVyLW1heC13aWR0aDtcbiAgbWF4LWhlaWdodDogJHBvcG92ZXItbWF4LWhlaWdodDtcbiAgYm9yZGVyLXJhZGl1czogZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuXG5cbi5wb3BvdmVyX19jb250ZW50IHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBtaW4td2lkdGg6ICRwb3BvdmVyLW1pbi13aWR0aDtcblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5cblxuXG4ucG9wb3Zlcl9fcGFuZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCIvLyAgICAgICAgX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fX18gICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAgICAgICAgICAgICAgICBfX18gICAgICAvICAvOjpcXCAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86L18gICAgICAgICAgICAgICAgIC8gIC9cXCAgICAvICAvOi9cXDpcXCAgICAvICAvOi9fICAgICAgLyAgLzo6XFxcbi8vICAgICAvICAvOi8gL1xcICBfX18gICAgIF9fXyAgLyAgLzovICAgLyAgLzovICBcXDpcXCAgLyAgLzovIC9cXCAgICAvICAvOi9cXDpcXFxuLy8gICAgLyAgLzovIC86OlxcL19fL1xcICAgLyAgL1xcL19fLzo6XFwgIC9fXy86LyBcXF9fXFw6fC8gIC86LyAvOi9fICAvICAvOi9+LzovXG4vLyAgIC9fXy86LyAvOi9cXDpcXCAgXFw6XFwgLyAgLzovXFxfX1xcL1xcOlxcX1xcICBcXDpcXCAvICAvOi9fXy86LyAvOi8gL1xcL19fLzovIC86L19fX1xuLy8gICBcXCAgXFw6XFwvOi9+LzovXFwgIFxcOlxcICAvOi8gICAgXFwgIFxcOlxcL1xcICBcXDpcXCAgLzovXFwgIFxcOlxcLzovIC86L1xcICBcXDpcXC86Ojo6Oi9cbi8vICAgIFxcICBcXDo6LyAvOi8gIFxcICBcXDpcXC86LyAgICAgIFxcX19cXDo6L1xcICBcXDpcXC86LyAgXFwgIFxcOjovIC86LyAgXFwgIFxcOjovfn5+flxuLy8gICAgIFxcX19cXC8gLzovICAgIFxcICBcXDo6LyAgICAgICAvX18vOi8gIFxcICBcXDo6LyAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcXG4vLyAgICAgICAvX18vOi8gICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgIFxcX19cXC8gICAgICBcXCAgXFw6Oi8gICAgICBcXCAgXFw6XFxcbi8vICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cblxuLy8qXG4vLyBAcGF0dGVybiBTbGlkZXJcbi8vXG4vLyBBIHNpbXBsZSByYW5nZSBzbGlkZXIuIFVzZSB0aGlzIGNvbXBvbmVudCBmb3Igc2l0dWF0aW9ucyB3aGVyZSB0aGUgdXNlciBoYXNcbi8vIHRvIHNlbGVjdCBmcm9tIGEgY29udGludW91cyByYW5nZSBvZiB2YWx1ZXMgd2l0aCBhIG1pbmltdW0gYW5kIG1heGltdW0uIEZvclxuLy8gZXhhbXBsZSwgdGhpcyBjb21wb25lbnQgaXMgdXNlZCB0byBjaGFuZ2UgdGhlIHBlcnNwZWN0aXZlIGFuZCBwYW5lIGdhcCBmb3Jcbi8vIHRoZSBgRXhwbG9kZWRgIGNvbXBvbmVudC5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuLy8qXG4vLyBAbWFya3VwXG4vLyA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIGZvcj1cInJhbmdlXCI+VHJ5IHNvbWV0aGluZyBpbiByYW5nZTwvbGFiZWw+XG4vLyA8aW5wdXQgY2xhc3M9XCJyYW5nZVwiIG5hbWU9XCJyYW5nZVwiIGlkPVwicmFuZ2VcIiB0eXBlPVwicmFuZ2VcIj5cblxuLnJhbmdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuJHJhbmdlX190cmFjay0tc2l6ZTogZGVmYXVsdChjb250cm9sLXNpemUtLWxhcmdlKTtcbiRyYW5nZV9fdGh1bWItLXNwYWNpbmc6ICgwLjEgKiBkZWZhdWx0KGNvbnRyb2wtc2l6ZS0tbGFyZ2UpKTtcbiRyYW5nZV9fdGh1bWItLXNpemU6ICgkcmFuZ2VfX3RyYWNrLS1zaXplIC0gZG91YmxlKCRyYW5nZV9fdGh1bWItLXNwYWNpbmcpKTtcblxuQG1peGluIHJhbmdlX190cmFjayB7XG4gIC8vIGJveCBtb2RlbFxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkcmFuZ2VfX3RyYWNrLS1zaXplO1xuXG4gIC8vIGJhY2tkcm9wXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoZ3JheSwgZGFyayk7XG4gIGJvcmRlci1yYWRpdXM6IGhhbGYoJHJhbmdlX190cmFjay0tc2l6ZSk7XG4gIHBhZGRpbmc6ICRyYW5nZV9fdGh1bWItLXNwYWNpbmc7XG59XG5cbkBtaXhpbiByYW5nZV9fdGh1bWIge1xuICAvLyBib3ggbW9kZWxcbiAgaGVpZ2h0OiAkcmFuZ2VfX3RodW1iLS1zaXplO1xuICB3aWR0aDogJHJhbmdlX190aHVtYi0tc2l6ZTtcblxuICAvLyBiYWNrZHJvcFxuICBib3gtc2hhZG93OiAxcHggMXB4IDNweCByZ2JhKGNvbG9yKGJsYWNrKSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IGhhbGYoJHJhbmdlX190aHVtYi0tc2l6ZSk7XG4gIGJhY2tncm91bmQ6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgeyBAaW5jbHVkZSByYW5nZV9fdHJhY2s7IH1cbi5yYW5nZTpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sgeyBvdXRsaW5lOiBub25lOyB9XG4ucmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2sgeyBAaW5jbHVkZSByYW5nZV9fdHJhY2s7IH1cbi5yYW5nZTo6LW1zLXRyYWNrIHsgQGluY2x1ZGUgcmFuZ2VfX3RyYWNrOyB9XG5cbi5yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIgeyBAaW5jbHVkZSByYW5nZV9fdGh1bWI7IH1cbi5yYW5nZTo6LW1vei1yYW5nZS10aHVtYiB7IEBpbmNsdWRlIHJhbmdlX190aHVtYjsgfVxuLnJhbmdlOjotbXMtdGh1bWIgeyBAaW5jbHVkZSByYW5nZV9fdGh1bWI7IH1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcICAgICAgICAvICAvXFwgICAgICAgX19fICAgICAgICAgLyAgL1xcICAgICAgICAvICAvXFxcbi8vICAgICAgLyAgLzo6XFwgICAgICAvICAvOi9fICAgICAgLyAgLzovXyAgICAgLyAgL1xcICAgICAgIC8gIC86OnwgICAgICAvICAvOi9fXG4vLyAgICAgLyAgLzovXFw6XFwgICAgLyAgLzovIC9cXCAgICAvICAvOi8gL1xcICAgLyAgLzovICAgICAgLyAgLzovOnwgICAgIC8gIC86LyAvXFxcbi8vICAgIC8gIC86L34vOi8gICAvICAvOi8gLzovXyAgLyAgLzovIC86OlxcIC9fXy86OlxcICAgICAvICAvOi98OnxfXyAgLyAgLzovIC86L19cbi8vICAgL19fLzovIC86L19fXy9fXy86LyAvOi8gL1xcL19fLzovIC86L1xcOlxcXFxfX1xcL1xcOlxcX18gL19fLzovIHw6fCAvXFwvX18vOi8gLzovIC9cXFxuLy8gICBcXCAgXFw6XFwvOjo6OjovXFwgIFxcOlxcLzovIC86L1xcICBcXDpcXC86L34vOi8gICBcXCAgXFw6XFwvXFxcXF9fXFwvICB8OnwvOi9cXCAgXFw6XFwvOi8gLzovXG4vLyAgICBcXCAgXFw6Oi9+fn5+ICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6Oi8gLzovICAgICBcXF9fXFw6Oi8gICAgfCAgfDovOi8gIFxcICBcXDo6LyAvOi9cbi8vICAgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcLzovICAgIFxcX19cXC8gLzovICAgICAgL19fLzovICAgICB8ICB8OjovICAgIFxcICBcXDpcXC86L1xuLy8gICAgICBcXCAgXFw6XFwgICAgICAgXFwgIFxcOjovICAgICAgIC9fXy86LyAgICAgICBcXF9fXFwvICAgICAgfCAgfDovICAgICAgXFwgIFxcOjovXG4vLyAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgICAgICAgICAgICAgICAgIHxfX3wvICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gUmVzaXphYmxlXG4vL1xuLy8gQSBjb250YWluZXIgdGhhdCBjYW4gYmUgcmVzaXplZCBieSBkcmFnZ2luZyBvbiBhIGhhbmRsZVxuLy8gKGAucmVzaXphYmxlX19oYW5kbGVgKSB3aXRoIGEgY29udGFpbmVkIGlmcmFtZSB0aGF0IHNob3dzIHRoZSBhY3R1YWwgZGVtb1xuLy8gY29udGVudC4gVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8gc2VlIGhvdyB0aGUgZGVzaWduIHdvdWxkIGFjdHVhbGx5IGJlaGF2ZVxuLy8gYXQgZGlmZmVyZW50IHZpZXdwb3J0IHdpZHRocywgYW5kIGFsbG93cyBmb3IgZml4ZWQgYW5kIGFic29sdXRlIHBvc2l0aW9uZWRcbi8vIGVsZW1lbnRzIHRvIGJlIGRpc3BsYXllZCBpbiBhIHJlYXNvbmFibGUgd2F5LlxuLy9cbi8vIFRoZSBKYXZhU2NyaXB0IHBvcnRpb24gb2YgdGhpcyBjb21wb25lbnQgbWFuYWdlcyB0aGUgY29tbXVuaWNhdGlvbiBvZlxuLy8gaGVpZ2h0IGNoYW5nZXMgZnJvbSB0aGUgYGlmcmFtZWAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRlbW8gaXMgZW50aXJlbHlcbi8vIHZpc2libGUgYW5kIHNob3dzIHRoZSBjdXJyZW50IHdpZHRoIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gc2VlIGEgc21hbGxcbi8vIG51bWJlciBvZiBwcmVzZXQgd2lkdGhzLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuJHJlc2l6YWJsZS0tbWluLXdpZHRoOiAxOHJlbTtcbiRyZXNpemFibGUtLWJvcmRlcjogMXB4IHNvbGlkIHVpLWNvbG9yKGdyYXksIGRhcmtlcik7XG4kcmVzaXphYmxlLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nOiAwLjNzIGVhc2U7XG5cbiRyZXNpemFibGVfX2hhbmRsZS0td2lkdGg6IDEuMjVyZW07XG4kcmVzaXphYmxlX19oYW5kbGUtLWdyb292ZS1oZWlnaHQ6IGRvdWJsZShkZWZhdWx0KHNwYWNpbmcpKTtcbiRyZXNpemFibGVfX2hhbmRsZS0tZ3Jvb3ZlLXBlcmNlbnRhZ2Utd2lkdGg6IDAuMzU7XG5cbiRyZXNpemFibGVfX3NpemUtYnV0dG9uX19pY29uLS1zaXplOiAxLjhyZW07XG5cblxuXG4vLypcbi8vIFRoZSBjb3JlIGNvbXBvbmVudCBvZiBhIGBSZXNpemFibGVgLiBUaGlzIHBhcnQgb2YgdGhlIGNvbXBvbmVudCBjb250YWluc1xuLy8gdGhlIGhhbmRsZSBhbmQgYGlmcmFtZWAsIGFuZCBpcyB0aGUgcGFydCBvZiB0aGUgY29tcG9uZW50IHRoYXQgaXMgYWN0dWFsbHlcbi8vIHJlc2l6ZWQgd2hlbiBkcmFnZ2luZyB0aGUgaGFuZGxlLyB1c2luZyB0aGUgc2l6ZSBidXR0b25zLiBUaGUgYG1pbi13aWR0aGBcbi8vIHNwZWNpZmllZCBoZXJlIHNob3VsZCBhY2NvdW50IGZvciBib3RoIHRoZSBgbWluLXdpZHRoYCBvZiB0aGUgY29udGVudCAqYW5kKlxuLy8gdGhlIHdpZHRoIG9mIHRoZSBoYW5kbGUgKHdoaWNoIHdpbGwgYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5IG92ZXIgdGhlIHJpZ2h0XG4vLyBzaWRlKS5cbi8vXG4vLyBAaGVscGVyIGRvY2tzX3Jlc2l6YWJsZVxuXG4ucmVzaXphYmxlIHtcbiAgLy8gcG9zaXRpb25cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIGJveCBtb2RlbFxuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogKCRyZXNpemFibGUtLW1pbi13aWR0aCArICRyZXNpemFibGVfX2hhbmRsZS0td2lkdGgpO1xuXG4gIC8vIGJhY2tkcm9wXG4gIEBpbmNsdWRlIGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7XG5cbiAgLy8gdHlwZVxuICBsaW5lLWhlaWdodDogMDtcblxuICA+IC5jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogJHJlc2l6YWJsZV9faGFuZGxlLS13aWR0aDtcbiAgfVxuXG4gIC5pZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAkcmVzaXphYmxlLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbn1cblxuLy8qXG4vLyBQcm92aWRlcyBhIHRyYW5zaXRpb24gdGhhdCBzbW9vdGhseSBtb3ZlcyB0aGUgcmVzaXphYmxlIGNvbnRhaW5lciBmcm9tIG9uZVxuLy8gd2lkdGggdG8gdGhlIG5leHQuIFRoaXMgaXMgbm90IGRvbmUgYnkgZGVmYXVsdCBhcyBkcmFnZ2luZyB0aGUgaGFuZGxlIHdvdWxkXG4vLyBhcHBlYXIgYnJva2VuLlxuXG4ucmVzaXphYmxlLS1pcy10cmFuc2l0aW9uaW5nLXdpZHRoIHtcbiAgdHJhbnNpdGlvbjogd2lkdGggJHJlc2l6YWJsZS0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZztcbn1cblxuXG5cbi8vKlxuLy8gVGhlIGhhbmRsZSBieSB3aGljaCB0byByZXNpemUgdGhlIGNvbnRhaW5lci4gRGVmYXVsdCBzdHlsZSBnaXZlcyB0d28gc21hbGxcbi8vIGdyb292ZXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgaGFuZGxlIHRoYXQgYWZmb3JkcyBpdHMgZHJhZ2dhYmlsaXR5LlxuXG4ucmVzaXphYmxlX19oYW5kbGUge1xuICAvLyBwb3NpdGlvblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDsgcmlnaHQ6IDA7XG5cbiAgLy8gYm94IG1vZGVsXG4gIHdpZHRoOiAkcmVzaXphYmxlX19oYW5kbGUtLXdpZHRoO1xuICBoZWlnaHQ6IDEwMCU7XG5cbiAgLy8gYmFja2Ryb3BcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICBiYWNrZ3JvdW5kOiB1aS1jb2xvcihncmF5LCBkYXJrKTtcbiAgYm9yZGVyLXJhZGl1czogMCBkZWZhdWx0KGJvcmRlci1yYWRpdXMpIGRlZmF1bHQoYm9yZGVyLXJhZGl1cykgMDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgJHJlc2l6YWJsZV9faGFuZGxlLS1ncm9vdmUtd2lkdGg6ICRyZXNpemFibGVfX2hhbmRsZS0tZ3Jvb3ZlLXBlcmNlbnRhZ2Utd2lkdGggKiAkcmVzaXphYmxlX19oYW5kbGUtLXdpZHRoO1xuXG4gICAgY29udGVudDogXCJcIjtcblxuICAgIC8vIHBvc2l0aW9uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlOyBsZWZ0OiA1MCU7XG5cbiAgICAvLyBib3ggbW9kZWxcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRyZXNpemFibGVfX2hhbmRsZS0tZ3Jvb3ZlLWhlaWdodDtcbiAgICB3aWR0aDogJHJlc2l6YWJsZV9faGFuZGxlLS1ncm9vdmUtd2lkdGg7XG4gICAgbWFyZ2luLXRvcDogbmVnYXRpdmUoaGFsZigkcmVzaXphYmxlX19oYW5kbGUtLWdyb292ZS1oZWlnaHQpKTtcbiAgICBtYXJnaW4tbGVmdDogbmVnYXRpdmUoaGFsZigkcmVzaXphYmxlX19oYW5kbGUtLWdyb292ZS13aWR0aCkpO1xuXG4gICAgLy8gYmFja2Ryb3BcbiAgICBib3JkZXItcmlnaHQ6ICRyZXNpemFibGUtLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogJHJlc2l6YWJsZS0tYm9yZGVyO1xuICB9XG59XG5cblxuXG4vLypcbi8vIEEgY29udGFpbmVyIGZvciBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGFuZCBhY2lvbnMgYXZhaWxhYmxlIGZvciB0aGVcbi8vIGNvbXBvbmVudC5cblxuLnJlc2l6YWJsZV9fYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBtYXJnaW4tYm90dG9tOiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xufVxuXG5cblxuXG4vLypcbi8vIEEgc21hbGwgbm90aWNlIHRoYXQgc2hvd3MgdGhlIGN1cnJlbnQgd2lkdGggb2YgdGhlIChjb250ZW50IG9mIHRoZSkgcmVzaXphYmxlXG4vLyBtb2R1bGUuIFRoaXMgaW5kaWNhdG9yIHNsaWRlcyBpbiB3aGVuIHRoZSBzaXplIGNoYW5nZXMgKHRocm91Z2ggdGhlIHVzZSBvZlxuLy8gdGhlIGByZXNpemFibGVfX3dpZHRoLWluZGljYXRvci0taXMtdmlzaWJsZWAgdmFyaWFudCkuXG4vL1xuLy8gVGhlIGluZGljYXRvciBzaG93cyB0aGUgd2lkdGggaW4gYm90aCBgcHhgIGFuZCBgZW1gIHZhbHVlcyB3aGljaCBhcmVcbi8vIGNvbnRhaW5lZCBpbiB0aGUgc3VibW9kdWxlcyBgcmVzaXphYmxlX193aWR0aC1pbmRpY2F0b3JfX3B4YCBhbmRcbi8vIGByZXNpemFibGVfX3dpZHRoLWluZGljYXRvcl9fZW1gLCByZXNwZWN0aXZlbHkuXG4vL1xuLy8gQHN0YXRlIC0taXMtdmlzaWJsZSAtIFRoZSBpbmRpY2F0b3IgaXMgY3VycmVudGx5IGJlaW5nIHNob3duLlxuXG4ucmVzaXphYmxlX193aWR0aC1pbmRpY2F0b3Ige1xuICAvLyB0eXBlXG4gIGNvbG9yOiBjb2xvcihncmF5LWRhcmspO1xuICBmb250OiAzMDAgMXJlbS8xIENvbnNvbGFzLCBtb25vc3BhY2U7O1xuXG4gIC8vIGJhY2tkcm9wXG4gIG9wYWNpdHk6IDAuNDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkcmVzaXphYmxlLS1kZWZhdWx0LXRyYW5zaXRpb24tdGltaW5nO1xufVxuXG4ucmVzaXphYmxlX193aWR0aC1pbmRpY2F0b3ItLWlzLXZpc2libGUgeyBvcGFjaXR5OiAxOyB9XG5cblxuXG4vLypcbi8vIEEgdmVydGljYWxseS1vcmllbnRlZCBzZXQgb2YgYnV0dG9ucyB0aGF0IHJlc2l6ZSB0aGUgcmVzaXphYmxlIG1vZHVsZSB0b1xuLy8gcHJlZGV0ZXJtaW5lZCB3aWR0aHMuIFRoZXNlIHdpZHRocyBoYXZlIGJlZW4gc2V0IGluIHRoZSBKYXZhc2NyaXB0IHBhcnQgb2Zcbi8vIHRoaXMgbW9kdWxlLlxuXG4ucmVzaXphYmxlX19zaXplLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5cblxuLy8qXG4vLyBBIHNpbmdsZSBidXR0b24gdGhhdCByZXNpemVzIHRoZSBtb2R1bGUuXG4vL1xuLy8gQHN0YXRlIC0taXMtYWN0aXZlIChzZWxlY3QpXG4vLyBJbmRpY2F0ZXMgdGhhdCB0aGlzIGJ1dHRvbiBoYXMgYmVlbiBwcmVzc2VkIGFuZCB0aGF0IHRoZSB1c2VyIGhhcyBub3Rcbi8vIHN1YnNlcXVlbnRseSByZXNpemVkIHRoZSBtb2R1bGUgaW4gc29tZSBvdGhlciB3YXkuXG4vL1xuLy8gQHN0YXRlIC0taXMtaGlkZGVuIChub25lKVxuLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGJ1dHRvbiBzaG91bGQgYmUgaGlkZGVuIGJlY2F1c2Ugbm90IGVub3VnaCBzY3JlZW4gc3BhY2Vcbi8vIGV4aXN0cyBmb3IgaXRzIHJlc2l6ZS5cbi8vXG4vLyBAdmFyaWFudCAtLXNtYWxsICAobm9uZSkgLSBSZXNpemVzIHRvIGEgcm91Z2hseSBzbWFydHBob25lLXNpemVkIHdpZHRoLlxuLy8gQHZhcmlhbnQgLS1tZWRpdW0gKG5vbmUpIC0gUmVzaXplcyB0byBhIHJvdWdobHkgdGFibGV0LXNpemVkIHdpZHRoLlxuLy8gQHZhcmlhbnQgLS1sYXJnZSAgKG5vbmUpIC0gUmVzaXplcyB0byBhIHJvdWdobHkgZGVza3RvcC1zaXplZCB3aWR0aC5cblxuLnJlc2l6YWJsZV9fc2l6ZS1idXR0b24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRyZXNpemFibGUtLWRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmc7XG5cbiAgPiAuaWNvbiB7XG4gICAgaGVpZ2h0OiAkcmVzaXphYmxlX19zaXplLWJ1dHRvbl9faWNvbi0tc2l6ZTtcbiAgICB3aWR0aDogJHJlc2l6YWJsZV9fc2l6ZS1idXR0b25fX2ljb24tLXNpemU7XG5cbiAgICBAaW5jbHVkZSBpY29uLS1yZWNvbG9yKGdyYXkpO1xuICAgIHRyYW5zaXRpb246IGZpbGwgJHJlc2l6YWJsZS0tZGVmYXVsdC10cmFuc2l0aW9uLXRpbWluZztcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6YWN0aXZlLFxuICAmLnJlc2l6YWJsZV9fc2l6ZS1idXR0b24tLWlzLWFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG4gICYucmVzaXphYmxlX19zaXplLWJ1dHRvbi0taXMtYWN0aXZlLFxuICAmOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcblxuICAgID4gLmljb24ge1xuICAgICAgZmlsbDogY29sb3IoYmx1ZSk7XG4gICAgICBzdHJva2U6IGNvbG9yKGJsdWUpO1xuICAgIH1cbiAgfVxufVxuXG4ucmVzaXphYmxlX19zaXplLWJ1dHRvbi0taXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi5zY3JvbGwtY29udGFpbmVyIHtcbiAgLy8gQ29udGFpbiBhbnkgaW50ZXJpb3IgbWFyZ2luc1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLy8gICAgICAgIF9fXyAgICAgICAgICBfX18gICAgICAgICAgX19fICAgICAgICAgICAgICAgICAgICAgICAgICBfX18gICAgICAgICAgX19fXG4vLyAgICAgICAvICAvXFwgICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcICAgICAgICBfX18gIF9fXyAgICAgICAgLyAgL1xcICAgICAgICAvX18vXFxcbi8vICAgICAgLyAgLzovXyAgICAgIC8gIC86L18gICAgICAvICAvOi8gICAgICAgLyAgL1xcLyAgL1xcICAgICAgLyAgLzo6XFwgICAgICAgXFwgIFxcOlxcXG4vLyAgICAgLyAgLzovIC9cXCAgICAvICAvOi8gL1xcICAgIC8gIC86LyAgICAgICAvICAvOi8gIC86LyAgICAgLyAgLzovXFw6XFwgICAgICAgXFwgIFxcOlxcXG4vLyAgICAvICAvOi8gLzo6XFwgIC8gIC86LyAvOi9fICAvICAvOi8gIF9fXyAgLyAgLzovX18vOjpcXCAgICAvICAvOi8gIFxcOlxcICBfX19fX1xcX19cXDpcXFxuLy8gICAvX18vOi8gLzovXFw6XFwvX18vOi8gLzovIC9cXC9fXy86LyAgLyAgL1xcLyAgLzo6XFxfX1xcL1xcOlxcX18vX18vOi8gXFxfX1xcOlxcL19fLzo6Ojo6Ojo6XFxcbi8vICAgXFwgIFxcOlxcLzovfi86L1xcICBcXDpcXC86LyAvOi9cXCAgXFw6XFwgLyAgLzovX18vOi9cXDpcXCBcXCAgXFw6XFwvXFwgIFxcOlxcIC8gIC86L1xcICBcXDpcXH5+XFx+flxcL1xuLy8gICAgXFwgIFxcOjovIC86LyAgXFwgIFxcOjovIC86LyAgXFwgIFxcOlxcICAvOi9cXF9fXFwvICBcXDpcXCBcXF9fXFw6Oi9cXCAgXFw6XFwgIC86LyAgXFwgIFxcOlxcICB+fn5cbi8vICAgICBcXF9fXFwvIC86LyAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcLzovICAgICAgXFwgIFxcOlxcL19fLzovICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOlxcXG4vLyAgICAgICAvX18vOi8gICAgICBcXCAgXFw6Oi8gICAgICBcXCAgXFw6Oi8gICAgICAgIFxcX19cXC9cXF9fXFwvICAgIFxcICBcXDo6LyAgICAgIFxcICBcXDpcXFxuLy8gICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cblxuLy8qXG4vLyBAcGF0dGVybiBTZWN0aW9uXG4vL1xuLy8gU2VjdGlvbnMgYXJlIHNpbXBseSB3YXlzIG9mIGdyb3VwaW5nIHJlbGF0ZWQgY29udGVudCBhbmQgcHJvdmlzaW5nXG4vLyBzZXBhcmF0aW9uIGJldHdlZW4gdGhhdCBjb250YWluZWQgY29udGVudCBhbmQgXCJzaWJsaW5nXCIgY29udGVudC5cbi8vXG4vLyBTbWFsbGVyIHZhcmlhdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3IgbW9yZSBjb25kZW5zZWQgY29udGVudCwgbGlrZSBjb250ZW50XG4vLyBpbnNpZGUgb2YgYSBwb3BvdmVyLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuLy8qXG4vLyBBIGNvbnRhaW5lciBhcm91bmQgc29tZSBjb250ZW50IHRoYXQgcHJvdmlkZXMgdGhlIHZlcnRpY2FsIHNlcGFyYXRpb24gZnJvbVxuLy8gb3RoZXIgYHNlY3Rpb25gcy4gVGhpcyB3aWxsIGFsc28gcmVtb3ZlIGFueSB0b3AvIGJvdHRvbSBwYWRkaW5nIGZyb20gdGhlXG4vLyBmaXJzdC8gbGFzdCBjaGlsZCwgcmVzcGVjdGl2ZWx5LCB0byBhdm9pZCBtb3JlIHZlcnRpY2FsIHBhZGRpbmcgdGhhblxuLy8gbmVjZXNzYXJ5LlxuXG4uc2VjdGlvbiB7XG4gIG1hcmdpbjogZG91YmxlKGRlZmF1bHQoc3BhY2luZykpIDA7XG4gIHBhZGRpbmc6IGRlZmF1bHQoc3BhY2luZykgMDtcblxuICA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICYsXG4gICAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICA+ICo6bGFzdC1jaGlsZCB7XG4gICAgJixcbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi8vKlxuLy8gQSBzbWFsbGVyIHNlY3Rpb24gd2l0aCBubyBib3JkZXIgc2VwYXJhdGluZyBjb250ZW50LiBVc2UgdGhpcyB2YXJpYW50IGZvclxuLy8gcGxhY2VzIHdoZXJlIHRoZSBiYXNlIGFtb3VudCBvZiB2ZXJ0aWNhbCBwYWRkaW5nIGlzIGV4Y2Vzc2l2ZSAoZm9yIGV4YW1wbGUsXG4vLyBpbiBwb3BvdmVycyBvciBvdGhlciBsaW1pdGVkLXdpZHRoIGNvbnRhaW5lcnMpLlxuXG4uc2VjdGlvbi0tc21hbGwge1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogZGVmYXVsdChzcGFjaW5nKSAwO1xufVxuXG4vLypcbi8vIEEgc2VjdGlvbiB3aXRoIGEgbGlnaHQgZ3JheSBiYWNrZ3JvdW5kIHRoYXQgc2VwYXJhdGVzIGl0IHZpc3VhbGx5IGZyb20gdGhlXG4vLyBvdGhlciBzZWN0aW9ucy4gVXNlIHRoaXMgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHNpZ25pZmljYW50bHkgZGlmZmVyZW50XG4vLyBncm91cHMgb2YgY29udGVudC4gSXQgaXMgYmVzdCB0byBvbmx5IHVzZSB0aGlzIHdpdGggYHNlY3Rpb24tLXNtYWxsYCDigJRcbi8vIHJlZ3VsYXIgYHNlY3Rpb25gcyBhbHJlYWR5IGhhdmUgc3VmZmljaWVudCBzZXBhcmF0aW9uIGluIG1vc3QgY2FzZXMuXG5cbi5zZWN0aW9uLS1zdWJkdWVkIHtcbiAgYmFja2dyb3VuZDogY29sb3IoZ3JheS1saWdodCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJi5zZWN0aW9uLS1zbWFsbCB7XG4gICAgcGFkZGluZzogZGVmYXVsdChzcGFjaW5nKSAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBVc2UgdGhpcyBjb250YWluZXIgZm9yIHdoZW4geW91IHdhbnQgYSBncm91cCBvZiBzZWN0aW9ucyB0byBoYXZlIGFkZGl0aW9uYWxcbi8vIHZlcnRpY2FsIHNlcGFyYXRpb24gZnJvbSB0aGUgY29udGVudCBhcm91bmQgaXQuIFRoZSBhbW91bnQgb2YgYWRkaXRpb25hbFxuLy8gc3BhY2UgZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBjb250YWluZXIgY29udGFpbnMgcmVndWxhciBvciBgLS1zbWFsbGBcbi8vIGBzZWN0aW9uYHMuXG4vL1xuLy8gVGhpcyBjb250YWluZXIgaXMgbm90IG5lY2Vzc2FyeSDigJQgZm9yIGV4YW1wbGUsIHNlY3Rpb25zIGNhbiBzaXQgb24gdGhlaXIgb3duXG4vLyBpbnNpZGUgYSBwb3BvdmVyLlxuXG4uc2VjdGlvbl9fY29udGFpbmVyIHtcbiAgPiAuc2VjdGlvbiB7XG4gICAgJjpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IGRvdWJsZShkZWZhdWx0KHNwYWNpbmcpKTsgfVxuICAgICY6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IGRvdWJsZShkZWZhdWx0KHNwYWNpbmcpKTsgfVxuICB9XG5cbiAgPiAuc2VjdGlvbi0tc21hbGwge1xuICAgICY6Zmlyc3QtY2hpbGQgeyBtYXJnaW4tdG9wOiBkZWZhdWx0KHNwYWNpbmcpOyB9XG4gICAgJjpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogZGVmYXVsdChzcGFjaW5nKTsgfVxuICB9XG59XG4iLCIvLyAgICAgICAgX19fICAgICAgICAgIF9fXyAgICAgICAgICAgICAgICAgICAgIF9fXyAgICAgICAgICBfX19cbi8vICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcICAgICAgICAgICAgICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcICAgICAgICBfX19cbi8vICAgICAgLyAgLzovXyAgICAgIC8gIC86L18gICAgICAgICAgICAgICAgIC8gIC86L18gICAgICAvICAvOi8gICAgICAgLyAgL1xcXG4vLyAgICAgLyAgLzovIC9cXCAgICAvICAvOi8gL1xcICBfX18gICAgIF9fXyAgLyAgLzovIC9cXCAgICAvICAvOi8gICAgICAgLyAgLzovXG4vLyAgICAvICAvOi8gLzo6XFwgIC8gIC86LyAvOi9fL19fL1xcICAgLyAgL1xcLyAgLzovIC86L18gIC8gIC86LyAgX19fICAvICAvOi9cbi8vICAgL19fLzovIC86L1xcOlxcL19fLzovIC86LyAvXFwgIFxcOlxcIC8gIC86L19fLzovIC86LyAvXFwvX18vOi8gIC8gIC9cXC8gIC86OlxcXG4vLyAgIFxcICBcXDpcXC86L34vOi9cXCAgXFw6XFwvOi8gLzovXFwgIFxcOlxcICAvOi9cXCAgXFw6XFwvOi8gLzovXFwgIFxcOlxcIC8gIC86L19fLzovXFw6XFxcbi8vICAgIFxcICBcXDo6LyAvOi8gIFxcICBcXDo6LyAvOi8gIFxcICBcXDpcXC86LyAgXFwgIFxcOjovIC86LyAgXFwgIFxcOlxcICAvOi9cXF9fXFwvICBcXDpcXFxuLy8gICAgIFxcX19cXC8gLzovICAgIFxcICBcXDpcXC86LyAgICBcXCAgXFw6Oi8gICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDpcXC86LyAgICAgIFxcICBcXDpcXFxuLy8gICAgICAgL19fLzovICAgICAgXFwgIFxcOjovICAgICAgXFxfX1xcLyAgICAgIFxcICBcXDo6LyAgICAgIFxcICBcXDo6LyAgICAgICAgXFxfX1xcL1xuLy8gICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gU2VsZWN0XG4vL1xuLy8gQSBjdXN0b20gYHNlbGVjdGAgZWxlbWVudC4gSW4gb3JkZXIgdG8gcHJlc2VudCB0aGVzZSBpbiB0aGUgc2FtZSB3YXkgYWNyb3NzXG4vLyBicm93c2VycywgbW9zdCBvZiB0aGUgc3R5bGluZyBpcyBkb25lIG9uIGEgbm9kZSB3cmFwcGVkIGFyb3VuZCBhbiBhY3R1YWxcbi8vIGBzZWxlY3RgIGVsZW1lbnQsIGFuZCBhIGJpdCBvZiBKYXZhU2NyaXB0IHRoYXQgdHJhbnNsYXRlcyB0aGUgZm9jdXMvIGJsdXJcbi8vIG9uIHRoZSBjb250YWluZWQgYHNlbGVjdGAgaW50byBhIHN0YXRlIGNsYXNzLlxuLy9cbi8vIEBzaW5jZSAxLjAuMFxuXG5cblxuJHNlbGVjdC0tZm9udC1zaXplOiAoZm9udC1zaXplKGNvbnRyb2wpICogMC45KTtcbiRzZWxlY3QtLWhvcml6b250YWwtcGFkZGluZzogZGVmYXVsdChjb250cm9sLXBhZGRpbmcpO1xuJHNlbGVjdC0tbGluZS1oZWlnaHQ6IGRlZmF1bHQoY29udHJvbC1zaXplKTtcbiRzZWxlY3QtLWljb24tc2l6ZTogJHNlbGVjdC0tZm9udC1zaXplIC8gMS42O1xuXG5cblxuLy8qXG4vLyBUaGUgd3JhcHBlciBhcm91bmQgYSBgc2VsZWN0YC4gVGhpcyB3cmFwcGVyIHByb3ZpZGVzIG1vc3Qgb2YgdGhlIHZpc3VhbFxuLy8gc3R5bGluZywgaW5jbHVkaW5nIHRoZSBmb2N1cyBzdHlsaW5nLiBUaGlzIHBhcnQgb2YgdGhlIGNvbXBvbmVudCBhbHNvXG4vLyBjcmVhdGVzIGEgdHJpYW5nbGUgaWNvbiBpbiBwbGFjZSBvZiB0aGUgYnJvd3Nlci1zdXBwbGllZCBvbmUuXG4vL1xuLy8gQGhlbHBlclxuLy8gPCU9IGRvY2tzX3NlbGVjdCBvcHRpb25zOiAldyhTdXBlcl9sb25nX29wdGlvbl90aGF0X2lzX3F1aXRlX2xvbmcgbm9ybWFsX3NpemUgU01BTEwpICU+XG5cbi5zZWxlY3Qge1xuICAvLyBwb3NpdGlvblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gYm94IG1vZGVsXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAvLyBiYWNrZHJvcFxuICBib3JkZXItcmFkaXVzOiBkZWZhdWx0KGJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5KTtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgLy8gcG9zaXRpb25cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6ICRzZWxlY3QtLWhvcml6b250YWwtcGFkZGluZztcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cbiAgICAvLyBib3ggbW9kZWxcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6ICRzZWxlY3QtLWljb24tc2l6ZTtcbiAgICB3aWR0aDogJHNlbGVjdC0taWNvbi1zaXplO1xuICAgIG1hcmdpbi10b3A6ICgtMC43NSAqICRzZWxlY3QtLWljb24tc2l6ZSk7XG5cbiAgICAvLyBiYWNrZHJvcFxuICAgIGJvcmRlcjogc29saWQgcmdiYSh1aS1jb2xvcihncmF5LCBkYXJrZXIpLCAwLjUpO1xuICAgIGJvcmRlci13aWR0aDogMCAycHggMnB4IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICArIC5kb2Nrcy1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiBoYWxmKGRlZmF1bHQoc3BhY2luZykpO1xuICB9XG59XG5cbi8vKlxuLy8gVGhpcyBzdGF0ZSBpcyBhcHBsaWVkIHRvIGEgYHNlbGVjdGAgd2hvc2UgY29udGFpbmVkIGlucHV0IGlzIGZvY3VzZWQuXG5cbi5zZWxlY3QtLWlzLWZvY3VzZWQge1xuICBib3JkZXItY29sb3I6IGNvbG9yKGJsdWUpO1xufVxuXG4vLypcbi8vIEEgc2VsZWN0IHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBhIG1vbm9zcGFjZSBmb250IChmb3IgZXhhbXBsZSwgYmVjYXVzZVxuLy8gaXQgaXMgY2hvb3NpbmcgYSBjbGFzcyBuYW1lKS5cblxuLnNlbGVjdC0tY29kZSB7XG4gID4gLnNlbGVjdF9faW5wdXQge1xuICAgIEBpbmNsdWRlIHR5cGUtLW1vbm9zcGFjZS1mb250LWZhbWlseTtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBUaGUgYWN0dWFsIGBzZWxlY3RgLiBNb3N0IG9mIHRoZSBzdHlsZXMgaGVyZSBnbyB0byB1bmRvaW5nIHRoZSBkZWZhdWx0XG4vLyBicm93c2VyIHN0eWxlcyBmb3IgYHNlbGVjdGBzLiBBbGwgb2YgdGhlIGZvbnQgc2l6aW5nIGZvciB0aGUgY29tcG9uZW50IG11c3Rcbi8vIGJlIHBsYWNlZCBoZXJlIGZvciB0aG9zZSBzdHlsZXMgdG8gZGlzcGxheSBjb3JyZWN0bHkuXG5cbi5zZWxlY3RfX2lucHV0IHtcbiAgLy8gYm94IG1vZGVsXG4gIEBpbmNsdWRlIHJlbW92ZS1icm93c2VyLXN0eWxpbmc7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIHBhZGRpbmc6IDAgKGRvdWJsZSgkc2VsZWN0LS1ob3Jpem9udGFsLXBhZGRpbmcpICsgJHNlbGVjdC0taWNvbi1zaXplKSAwICRzZWxlY3QtLWhvcml6b250YWwtcGFkZGluZztcblxuICAvLyBiYWNrZHJvcFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuXG4gIC8vIHR5cGVcbiAgZm9udC1zaXplOiAkc2VsZWN0LS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBkZWZhdWx0KGNvbnRyb2wtc2l6ZSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgLy8gZm9udC1mYW1pbHk6IENvbnNvbGFzLCBtb25vc3BhY2U7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gIH1cblxuICA+IG9wdGlvbiB7XG4gICAgY29sb3I6IGNvbG9yKHNsYXRlKTtcbiAgfVxufVxuXG4vLyBBbGwgb2YgdGhlIGJlbG93IGhhY2tzIGNvdXJ0ZXN5IG9mIFRvZGQgUGFya2VyJ3MgZmluZSB3b3JLIGhlcmU6XG4vLyBodHRwOi8vanNiaW4uY29tIC8geWFydWggLyA0OSAvIGVkaXRcblxuLy8gSGlkZXMgbmF0aXZlIHNlbGVjdCBhcnJvdyBpbiBJRSAxMCtcbl86LW1zLWlucHV0LXBsYWNlaG9sZGVyLCA6cm9vdCAuc2VsZWN0X19pbnB1dDo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIEhpZGVzIGJsdWUgYmFja2dyb3VuZCBvbiBmb2N1cyBpbiBJRSAxMCtcbl86LW1zLWlucHV0LXBsYWNlaG9sZGVyLCA6cm9vdCAuc2VsZWN0X19pbnB1dDpmb2N1czo6LW1zLXZhbHVlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8vIENyYXp5IGhhY2tzIHRvIHRhcmdldCBGRiBhbmQgY2xpcCB0aGUgbmF0aXZlIHNlbGVjdCBhcnJvd1xuQHN1cHBvcnRzICgtbW96LWFwcGVhcmFuY2U6bWV0ZXJiYXIpIGFuZCAoYmFja2dyb3VuZC1ibGVuZC1tb2RlOmRpZmZlcmVuY2Usbm9ybWFsKSB7XG5cbiAgXzo6LW1vei1wcm9ncmVzcy1iYXIsXG4gIGJvZHk6bGFzdC1jaGlsZCAuc2VsZWN0X19pbnB1dF9fd3JhcHBlciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIF86Oi1tb3otcHJvZ3Jlc3MtYmFyLFxuICBib2R5Omxhc3QtY2hpbGQgLnNlbGVjdF9faW5wdXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAzMHB4KTtcbiAgfVxufVxuXG4vLyBLaWxscyB0aGUgc3R1cGlkIGZvY3VzIHJpbmcgaW4gRkZcbi5zZWxlY3RfX2lucHV0Oi1tb3otZm9jdXNyaW5nIHtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogMCAwIDAgYmxhY2s7XG59XG4iLCIvLyAgICAgICAgICAgICAgICBfX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXG4vLyAgICAgICAgX19fICAgIC8gIC9cXCAgICAgICAgX19fX18gICAgICAgICAgICAgICAgICAgLyAgL1xcXG4vLyAgICAgICAvICAvXFwgIC8gIC86OlxcICAgICAgLyAgLzo6XFwgICAgICAgICAgICAgICAgIC8gIC86L19cbi8vICAgICAgLyAgLzovIC8gIC86L1xcOlxcICAgIC8gIC86L1xcOlxcICBfX18gICAgIF9fXyAgLyAgLzovIC9cXFxuLy8gICAgIC8gIC86LyAvICAvOi9+Lzo6XFwgIC8gIC86L34vOjpcXC9fXy9cXCAgIC8gIC9cXC8gIC86LyAvOi9fXG4vLyAgICAvICAvOjpcXC9fXy86LyAvOi9cXDpcXC9fXy86LyAvOi9cXDpcXCAgXFw6XFwgLyAgLzovX18vOi8gLzovIC9cXFxuLy8gICAvX18vOi9cXDpcXCAgXFw6XFwvOi9fX1xcL1xcICBcXDpcXC86L34vOi9cXCAgXFw6XFwgIC86L1xcICBcXDpcXC86LyAvOi9cbi8vICAgXFxfX1xcLyAgXFw6XFwgIFxcOjovICAgICAgXFwgIFxcOjovIC86LyAgXFwgIFxcOlxcLzovICBcXCAgXFw6Oi8gLzovXG4vLyAgICAgICAgXFwgIFxcOlxcICBcXDpcXCAgICAgICBcXCAgXFw6XFwvOi8gICAgXFwgIFxcOjovICAgIFxcICBcXDpcXC86L1xuLy8gICAgICAgICBcXF9fXFwvXFwgIFxcOlxcICAgICAgIFxcICBcXDo6LyAgICAgIFxcX19cXC8gICAgICBcXCAgXFw6Oi9cbi8vICAgICAgICAgICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gVGFibGVcbi8vXG4vLyBUYWJsZXMgYXJlIHVzZWQgdG8gcHJlc2VudCB0YWJ1bGFyIGRhdGEgb25seSDigJTCoG5ldmVyIGZvciBsYXlvdXQhIFRoZXNlIHRhYmxlc1xuLy8gYXJlIHNtYXJ0ZXIgdGhhbiB0aGUgYXZlcmFnZSB0YWJsZSwgaG93ZXZlci4gVGhleSB3aWxsIGRldGVybWluZSB0aGVpclxuLy8gaW50cmluc2ljIHNpemUgKHVwIHRvIGEgc3R5bGVzaGVldC1zcGVjaWZpZWQgbWF4aW11bSkgYW5kLCB3aGVuIHRoZSBzcGFjZVxuLy8gYXZhaWxhYmxlIHRvIHRoZW0gaXMgbGVzcyB0aGFuIHRoYXQgc2l6ZSwgdGhleSB3aWxsIGJlZ2luIHRvIHNjcm9sbC5cbi8vXG4vLyBBcyB5b3Ugc2Nyb2xsLCB0aGUgZmlyc3QgY29sdW1uIHdpbGwgc3RheSBmaXhlZCwgc28geW91IGFsd2F5cyBoYXZlIGNvbnRleHQsXG4vLyBhbmQgdGhlIGFueSBnaXZlbiBjb2x1bW4gd2lsbCBhbHdheXMgYmUgc21hbGwgZW5vdWdoIHRvIGJlIGZ1bGx5IHZpc2libGUuIE5vdFxuLy8gb25seSB0aGF0LCBidXQgdGhlIHRhYmxlIHByb3ZpZGVzIGJvdGgga2V5Ym9hcmQgaW5wdXQgYW5kIGludGVyZmFjZSBlbGVtZW50c1xuLy8gdGhhdCBhbGxvdyB5b3UgdG8gcXVpY2tseSBzaGlmdCB0byBvdmVyc2Nyb2xsZWQgY29sdW1ucy5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuXG5cbiR0YWJsZS0tYm9yZGVyOiAxcHggc29saWQgY29sb3IoZ3JheS1saWdodCk7XG4kdGFibGUtLWJvcmRlci1yYWRpdXM6IGRvdWJsZShkZWZhdWx0KGJvcmRlci1yYWRpdXMpKTtcbiR0YWJsZS0tYm94LXNoYWRvdy1zaXplOiAzcHggMCA0cHggLTFweDtcblxuXG5cbi8vKlxuLy8gQSBzbWFydGVyIGB0YWJsZWAgZWxlbWVudC4gVGhlIGBtaW4td2lkdGhgIHBsYWNlZCBoZXJlIHdpbGwgbm90IGFjdHVhbGx5XG4vLyBiZSB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgcmVuZGVyZWQgdGFibGU7IHRoZSBwcm92aWRlZCBtaW5pbXVtIHdpZHRoIHdpbGxcbi8vIGluc3RlYWQgYmUgdXNlZCBhcyB0aGUgbWF4aW11bSB3aWR0aCBhbGxvd2VkIGluIGRldGVybWluaW5nIHRoZSBwcmVmZXJyZWQvXG4vLyBpbnRyaW5zaWMgc2l6ZSBvZiB0aGUgdGFibGUgY2VsbHMuIFRoYXQgaXMsIGEgdGFibGUgd2hvc2UgbmF0dXJhbCBzaXplIGlzXG4vLyBsZXNzIHRoYW4gdGhpcyBhbW91bnQgd2lsbCBub3Qgb3ZlcmZsb3cgdW50aWwgdGhlIHNwYWNlIGl0IGhhcyBpcyBsZXNzIHRoYW5cbi8vIGl0cyBpbnRyaW5zaWMgc2l6ZSwgd2hlcmUgYSB0YWJsZSB3aXRoIGxhcmdlIGNlbGxzIHdpbGwgb3ZlcmZsb3cgYXQgdGhlXG4vLyBwcm92aWRlZCBgbWluLXdpZHRoYCBicmVha3BvaW50LlxuLy9cbi8vIFZpc3VhbGx5LCBhbGwgdGFibGVzIHdpbGwgYmUgMTAwJSB3aWR0aC4gQXMgbm90ZWQgYWJvdmUsIHRhYmxlcyB3aWxsIG92ZXJmbG93XG4vLyBvbmNlIHRoZSBsZXNzZXIgb2YgdGhlIGBtaW4td2lkdGhgIGJlbG93IG9yIHRoZSBpbnRyaXNpYyBzaXplIG9mIHRoZSB0YWJsZVxuLy8gaXMgcmVhY2hlZC4gVGhpcyBvdmVyZmxvd2luZyBpcyBtYW5hZ2VkIGJ5IHRoZSBKYXZhU2NyaXB0IGNvbXBvbmVudC5cbi8vXG4vLyBAaGVscGVyIGRvY2tzX3RhYmxlXG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IHJlbSg1MDApO1xuXG4gIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG5cblxuLy8qXG4vLyBUaGUgb3V0ZXJtb3N0IHdyYXBwZXIgYXJvdW5kIGEgdGFibGUuIFRoaXMgd3JhcHBlciBpcyB1c2VkIHRvIHNpZ25hbCB0byB0aGVcbi8vIGVudGlyZSBjb21wb25lbnQgd2hlbiB0aGUgdGFibGUgaXMgaW4gb3ZlcmZsb3cgKHZpYSB0aGVcbi8vIGB0YWJsZV9fY29udGFpbmVyLS1pcy1vdmVyZmxvd2luZ2Agc3RhdGUpLiBEb2luZyBzbyBvbiB0aGUgb3V0bW9zdCBjb250YWluZXJcbi8vIGFsbG93cyBhZGp1c3RtZW50cyB0byBib3RoIHRoZSB0YWJsZSBpdHNlbGYgYW5kIHRoZSBgdGFibGVfX2FjdGlvbnNgLlxuLy9cbi8vIEluIGFkZGl0aW9uLCBgdGFibGVfX2NvbnRhaW5lcnNgIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgdGhlIHJlcXVpcmVkXG4vLyBzcGFjZSBiZXR3ZWVuIHRoZW1zZWx2ZXMgYW5kIG90aGVyIGNvbnRlbnQuXG5cbi50YWJsZV9fY29udGFpbmVyIHtcbiAgbWFyZ2luOiBkZWZhdWx0KHNwYWNpbmcpIGF1dG87XG59XG5cbi8vKlxuLy8gU2lnbmFscyB0byB0aGUgYHRhYmxlYCB0aGF0IGl0IHNob3VsZCBmb3JjZSB0aGUgZmlyc3QgY2VsbCBpbiBlYWNoIHJvd1xuLy8gdG8gZmxvYXQgYWJvdXQgdGhlIHJlc3Qgb2YgdGhlIHJvd3MgKHRoZSByZXF1aXJlZCBsZWZ0IHBhZGRpbmcgb24gdGhlXG4vLyBzZWNvbmQgY2VsbCBpbiBlYWNoIHJvdyB0byBhY2NvdW50IGZvciB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIGZpcnN0IGNlbGxcbi8vIGlzIGRvbmUgYXV0b21hdGljYWxseSBieSB0aGUgSmF2YVNjcmlwdCBzaWRlIG9mIHRoaW5ncywgYXMgaXMgdGhlXG4vLyBlcXVhbGl6YXRpb24gb2YgYWxsIG9mIHRoZSBmaXJzdCBjZWxscycgd2lkdGhzKS4gQWRkaXRpb25hbGx5LCB0aGlzXG4vLyBzdGF0ZSBjYXVzZXMgdGhlIGB0YWJsZV9fYWN0aW9uc2AgdG8gYmUgbWFkZSB2aXNpYmxlLlxuLy9cbi8vIEBzZXRfYnkgVGFibGUjY2hlY2tfZm9yX292ZXJmbG93XG4vLyBAZGVtb190eXBlIG5vbmVcblxuLnRhYmxlX19jb250YWluZXItLWlzLW92ZXJmbG93aW5nIHtcbiAgLnRhYmxlX19jZWxsOmZpcnN0LWNoaWxkIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgQGluY2x1ZGUgei1pbmRleChjZWxsLXBlcnNpc3RhbnQsIHRhYmxlKTtcbiAgICBsZWZ0OiAwO1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLy8gU3RhcnQgYm94IHNoYWRvdyBhcyB0cmFuc3BhcmVudCBzbyBpdCBjYW4gYmUgYW5pbWF0ZWQgaW50byB2aWV3IHdoZW5cbiAgICAvLyB0aGUgdGFibGUgaXMgYWN0dWFsbHkgYmVpbmcgc2Nyb2xsZWQuXG4gICAgYm94LXNoYWRvdzogJHRhYmxlLS1ib3gtc2hhZG93LXNpemUgcmdiYShjb2xvcihibGFjayksIDApO1xuICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlO1xuICB9XG5cbiAgLnRhYmxlX19hY3Rpb25zIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgbWF4LWhlaWdodDogM3JlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogaGFsZihkZWZhdWx0KHNwYWNpbmcpKTtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBBIHdyYXBwZXIgYXJvdW5kIHRoZSBgdGFibGVgIHRoYXQgYWxsb3dzIGl0IHRvIHNjcm9sbCB3aGVuIHRoZSBtaW5pbXVtXG4vLyB3aWR0aCBvZiBpdHMgY29sdW1ucyAodGhlaXIgaW50cmluc2ljIHdpZHRoIG9yIHRoZWlyIHdpZHRoIHdoZW4gdGhlIHRhYmxlXG4vLyBpcyBsYXJnZXIgdGhhbiB0aGUgYG1pbi13aWR0aGAgc2V0IG9uIGB0YWJsZWApIGlzIGxhcmdlciB0aGFuIHRoZSBzcGFjZVxuLy8gYXZhaWxhYmxlIHRvIHRoaXMgY29udGFpbmVyLlxuXG4udGFibGVfX3Njcm9sbGVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8qXG4vLyBUaGUgc3RhdGUgdGhhdCBpcyBhZGRlZCBieSB0aGUgSmF2YVNjcmlwdCBjb21wb25lbnQgd2hlbiB0aGUgdGFibGUgaXNcbi8vIG92ZXJmbG93ZWQgKiphbmQqKiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoaXMgc3ViY29tcG9uZW50IGlzIG5vdCBmdWxseVxuLy8gcGlubmVkIHRvIHRoZSBsZWZ0LlxuLy9cbi8vIEBzZXRfYnkgVGFibGUjaGFuZGxlX3Njcm9sbCwgVGFibGUjc2hpZnRfdGFibGVcblxuLnRhYmxlX19zY3JvbGxlci0taXMtc2Nyb2xsZWQge1xuICAudGFibGVfX2NlbGw6Zmlyc3QtY2hpbGQge1xuICAgIGJveC1zaGFkb3c6ICR0YWJsZS0tYm94LXNoYWRvdy1zaXplIHJnYmEoY29sb3IoYmxhY2spLCAwLjEpO1xuICB9XG59XG5cblxuXG4vLypcbi8vIFRoZSB3cmFwcGVyIGFyb3VuZCBhIGB0YWJsZWAgdGhhdCBwcm92aWRlcyBhIGZldyB2aXN1YWwgcGllY2VzLiBNb3N0XG4vLyBub3RpY2VhYmx5LCB0aGlzIGFkZHMgdGhlIGJvcmRlciBhbmQgYm9yZGVyIHJhZGl1cyBvbiB0aGUgb3V0c2lkZSBvZiB0aGVcbi8vIHRhYmxlLiBUaGVzZSBwaWVjZXMgbXVzdCBiZSBvbiB0aGlzIGNvbnRhaW5lciByYXRoZXIgdGhhbiB0aGVcbi8vIGB0YWJsZV9fY29udGFpbmVyYCBzdWJjb21wb25lbnQgYmVjYXVzZSBpdCBzaG91bGQgb25seSB3cmFwIGFyb3VuZCB0aGVcbi8vIGB0YWJsZWAsIGFuZCBub3QgdGhlIGB0YWJsZV9fYWN0aW9uc2AuIFRoZXNlIHJ1bGVzIGNhbid0IGJlIG9uIHRoZVxuLy8gYHRhYmxlX19zY3JvbGxlcmAgc3ViY29tcG9uZW50LCBlaXRoZXIsIGJlY2F1c2UgaXQgbXVzdCBiZSBgb3ZlcmZsb3c6IGhpZGRlbmBcbi8vICh0byBoaWRlIHRoZSBwYXJ0cyBvdXRzaWRlIHRoZSByb3VuZGVkIGNvcm5lcnMpLCB3aGVyZSB0aGUgc2Nyb2xsZXIgbXVzdFxuLy8gYmUgYWxsb3dlZCB0byBzY3JvbGwuXG4vL1xuLy8gTW9yZSBpbXBvcnRhbnRseSwgaG93ZXZlciwgdGhpcyBjb250YWluZXIgaXMgYHBvc2l0aW9uOiByZWxhdGl2ZWAgYW5kLCBhc1xuLy8gc3VjaCwgYWN0cyBhcyB0aGUgZWxlbWVudCBhZ2FpbnN0IHdoaWNoIHRoZSBwZXJzaXN0YW50IGNlbGxzIGFyZVxuLy8gcG9zaXRpb25lZC4gVGhlc2UgcnVsZXMgY2FuJ3QgYmUgb24gdGhlIGB0YWJsZV9fc2Nyb2xsZXJgIGJlY2F1c2UgaXQgc2Nyb2xscyxcbi8vIHdoZXJlIHRoZSBwZXJzaXN0YW50IGNlbGxzIHNob3VsZCBiZSBmaXhlZCBldmVuIGFzIHRoZSByZXN0IG9mIHRoZSB0YWJsZVxuLy8gc2Nyb2xscy5cblxuLnRhYmxlX19iYWNrZHJvcCB7XG4gIC8vIHBvc2l0aW9uXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgei1pbmRleChiYWNrZHJvcCwgdGFibGUpO1xuXG4gIC8vIGJveCBtb2RlbFxuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGNsZWFyOiBib3RoO1xuXG4gIC8vIGJhY2tkcm9wXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogJHRhYmxlLS1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICR0YWJsZS0tYm9yZGVyLXJhZGl1cztcbn1cblxuXG5cbi8vKlxuLy8gQSBjb250YWluZXIgYXJvdW5kIHRoZSBhY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgYHRhYmxlYC4gRm9yIG5vdyxcbi8vIHRoaXMgaW5jbHVkZXMgb25seSB0aGUgc2VnbWVudGVkIGJ1dHRvbiB0byBzaGlmdCB0aGUgdGFibGUgcmlnaHQvIGxlZnQgYnlcbi8vIG9uZSBjb2x1bW4uXG5cbi50YWJsZV9fYWN0aW9ucyB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNDAlKTtcbiAgbWF4LWhlaWdodDogMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzICRib3VuY3ktdHJhbnNpdGlvbixcbiAgICAgICAgICAgICAgbWF4LWhlaWdodCAwLjNzIGVhc2UsXG4gICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tIDAuM3MgZWFzZTtcbn1cblxuXG5cbi8vKlxuLy8gVGhlIGhlYWRlciByb3cgb2YgdGhlIHRhYmxlLlxuXG4udGFibGVfX2hlYWRlciB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cblxuXG4vLypcbi8vIFRoZSBjb250YWluZXIgYXJvdW5kIHRoZSByb3dzIHRoYXQgbWFrZSB1cCB0aGUgYm9keSBvZiB0aGUgdGFibGUuXG5cbi50YWJsZV9fYm9keSB7XG4gIC8vIFN0cmlwZWQgcm93cyFcbiAgPiAudGFibGVfX3JvdzpudGgtY2hpbGQob2RkKSA+IC50YWJsZV9fY2VsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoZ3JheS1saWdodGVyKTtcbiAgfVxufVxuXG5cblxuLy8qXG4vLyBBIHJvdyBvZiB0YWJsZSBjZWxscy5cblxuLnRhYmxlX19yb3cge1xuICAvLyBIaWRlIHRoZSBvdmVyZmxvdyBzbyB0aGF0IGJveCBzaGFkb3dzIG9uIHBlcnNpc3RhbnQgY2VsbHMgZG9uJ3QgYmxlZWRcbiAgLy8gYmV0d2VlbiByb3dzLlxuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5cblxuLy8qXG4vLyBBbiBpbmRpdmlkdWFsIHRhYmxlIGNlbGwuXG5cbi50YWJsZV9fY2VsbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgQGluY2x1ZGUgei1pbmRleChjZWxsLCB0YWJsZSk7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHBhZGRpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKHdoaXRlKTtcbn1cblxuLy8qXG4vLyBBIHRhYmxlIGNlbGwgd2l0aCBjZW50ZXItYWxpZ25lZCB0ZXh0LlxuXG4udGFibGVfX2NlbGwtLWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLy8gICAgICAgICAgICAgICAgX19fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXG4vLyAgICAgICAgX19fICAgIC8gIC9cXCAgICAgICAgX19fX18gICAgICAgICAgICAgICAgICAgX19fICAgICAgICAvICAvXFwgICAgICAgIF9fX1xuLy8gICAgICAgLyAgL1xcICAvICAvOjpcXCAgICAgIC8gIC86OlxcICAgICAgICAgICAgICAgICAvICAvXFwgICAgICAvICAvOi9fICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86LyAvICAvOi9cXDpcXCAgICAvICAvOi9cXDpcXCAgX19fICAgICBfX18gIC8gIC86LyAgICAgLyAgLzovIC9cXCAgICAvICAvOi9cbi8vICAgICAvICAvOi8gLyAgLzovfi86OlxcICAvICAvOi9+Lzo6XFwvX18vXFwgICAvICAvXFwvX18vOjpcXCAgICAvICAvOi8gLzo6XFwgIC8gIC86L1xuLy8gICAgLyAgLzo6XFwvX18vOi8gLzovXFw6XFwvX18vOi8gLzovXFw6XFwgIFxcOlxcIC8gIC86L1xcX19cXC9cXDpcXF9fL19fLzovIC86L1xcOlxcLyAgLzo6XFxcbi8vICAgL19fLzovXFw6XFwgIFxcOlxcLzovX19cXC9cXCAgXFw6XFwvOi9+LzovXFwgIFxcOlxcICAvOi8gICAgXFwgIFxcOlxcL1xcICBcXDpcXC86L34vOi9fXy86L1xcOlxcXG4vLyAgIFxcX19cXC8gIFxcOlxcICBcXDo6LyAgICAgIFxcICBcXDo6LyAvOi8gIFxcICBcXDpcXC86LyAgICAgIFxcX19cXDo6L1xcICBcXDo6LyAvOi9cXF9fXFwvICBcXDpcXFxuLy8gICAgICAgIFxcICBcXDpcXCAgXFw6XFwgICAgICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDo6LyAgICAgICAvX18vOi8gIFxcX19cXC8gLzovICAgICAgXFwgIFxcOlxcXG4vLyAgICAgICAgIFxcX19cXC9cXCAgXFw6XFwgICAgICAgXFwgIFxcOjovICAgICAgXFxfX1xcLyAgICAgICAgXFxfX1xcLyAgICAgL19fLzovICAgICAgICBcXF9fXFwvXG4vLyAgICAgICAgICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXF9fXFwvXG5cbi8vKlxuLy8gQHBhdHRlcm4gVGFibGlzdFxuLy9cbi8vIFRhYmxpc3RzIGFyZSB1c2VkIHRvIGNyZWF0ZSBncm91cHMgb2YgcmVsYXRlZCBjb250ZW50IHRoYXQgaXMgY29uZGl0aW9uYWxseVxuLy8gc2hvd24gb3IgaGlkZGVuIGJhc2VkIG9uIHRoZSBzZWxlY3RlZCB0YWIuIFRoZSBKYXZhU2NyaXB0IHBhcnQgb2YgdGhpc1xuLy8gY29tcG9uZW50cyBlbnN1cmVzIHRoYXQgdGhlIHJlcXVpcmVkIGFjY2Vzc2liaWxpdHktcmVsYXRlZCBtYXJrdXAgaXMgYWRkZWRcbi8vIHRvIHRoZSB0YWJzLCBhbmQgYSBudW1iZXIgb2YgZGlmZmVyZW50IHN0eWxlcyBhcmUgYXZhaWxhYmxlIGRlcGVuZGluZyBvblxuLy8gdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIHRhYnMgYXJlIGJlaW5nIHVzZWQuXG4vL1xuLy8gQHNpbmNlIDEuMC4wXG5cbi8vKlxuLy8gVGhlIGNvbnRhaW5lciBmb3IgYSBzZXQgb2YgdGFicy4gV2hpbGUgcGFuZWxzIGFuZCB0YWJzIGJvdGggdXNlIGB0YWJsaXN0YFxuLy8gYXMgdGhlaXIgYmFzZSBjb21wb25lbnQsIG9ubHkgYHRhYmxpc3RfX3RhYmBzIGFyZSBjaGlsZCBub2RlcyBvZiB0aGlzXG4vLyBjb21wb25lbnQ7IGB0YWJsaXN0X19wYW5lbGBzIChhbmQgdGhlaXIgY29udGFpbmVyKSBhcmUgc2VwYXJhdGUgZnJvbSB0aGVcbi8vIGRvY3VtZW50IHRvIGFsbG93IHRhYnMgdG8gbW92ZSBhcm91bmQgdGhlIHBhZ2UgaW5kZXBlbmRlbnRseSBvZiB0aGUgY29udGVudFxuLy8gdGhleSBhY3R1YWxseSBhY3RpdmF0ZS5cbi8vXG4vLyBUaGUgYHRhYmxpc3QtLW1hbmFnZXMtdXJsYCB2YXJpYW50IGlzIHVuaXF1ZSBpbiB0aGF0IGl0IGhhcyBubyB2aXN1YWxcbi8vIGRpZmZlcmVuY2VzLCBidXQgd2lsbCBwcmVzZXJ2ZSB0aGUgc2VsZWN0ZWQgdGFiIHZpYSBhIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbi8vIGFuZCByZXN0b3JlIHRoZSBzZWxlY3RlZCB0YWIgb24gc3Vic2VxdWVudCBwYWdlIGxvYWRzLiBUbyBhZGQgdGhpc1xuLy8gZnVuY3Rpb25hbGl0eSwgc2ltcGx5IHBhc3MgYHRydWVgIGZvciB0aGUgYDptYW5hZ2VfdXJsYCBvcHRpb24gb2YgdGhlXG4vLyBgZG9ja3NfdGFibGlzdGAgdmlldyBoZWxwZXIuXG4vL1xuLy8gQGhlbHBlciBkb2Nrc190YWJsaXN0XG5cbi50YWJsaXN0IHtcbiAgLy8gYm94IG1vZGVsXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IGhhbGYoZGVmYXVsdChzcGFjaW5nKSk7XG4gIG1hcmdpbi1yaWdodDogbmVnYXRpdmUoaGFsZihkZWZhdWx0KHNwYWNpbmcpKSk7XG5cbiAgLy8gYmFja2Ryb3BcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLy8qXG4vLyBBIGxhcmdlciBzZXQgb2YgdGFicyAoYm90aCBpbiB0ZXJtcyBvZiB0aGUgZm9udCBzaXplIG9mIHRoZSB0YWJzIGFuZCB0aGVcbi8vIHBhZGRpbmcgd2l0aGluIGVhY2ggdGFiKS5cbi8vXG4vLyBAc2V0X2J5IDpzaXplICg6bGFyZ2UpXG5cbi50YWJsaXN0LS1sYXJnZSB7XG4gIG1hcmdpbjogZG91YmxlKGRlZmF1bHQoc3BhY2luZykpIDA7XG5cbiAgPiAudGFibGlzdF9fdGFiIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUodGFibGlzdC0tbGFyZ2UpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmc6IGRlZmF1bHQoc3BhY2luZykgbXVsdGlwbHkoZGVmYXVsdChzcGFjaW5nKSwgMi41KSBtdWx0aXBseShkZWZhdWx0KHNwYWNpbmcpLCAxLjIpO1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgfVxuXG4gID4gLnRhYmxpc3RfX3RhYi0taXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1aS1jb2xvcihncmF5LCBsaWdodCk7XG4gIH1cbn1cblxuLy8qXG4vLyBBIHZhcmlhdGlvbiBvZiB0aGUgdGFibGlzdCB0aGF0IGZvcmNlcyB0aGUgSmF2YVNjcmlwdCB0byBwcmVzZXJ2ZSB0aGVcbi8vIHNlbGVjdGVkIHRhYiBhbmQgcmVsb2FkIHRoYXQgdGFiIG9uIHN1YnNlcXVlbnQgcGFnZSBsb2Fkcy5cbi8vXG4vLyBAZGVtb190eXBlIG5vbmVcbi8vIEBzZXRfYnkgOm1hbmFnZV91cmxcblxuLnRhYmxpc3QtLW1hbmFnZXMtdXJsIHt9XG5cblxuXG5cbi8vKlxuLy8gQSBzaW5nbGUgdGFiIGluIHRoZSB0YWJsaXN0LiBUYWJzIHdpbGwgYmUgYSByZWxhdGl2ZWx5IGxpZ2h0IGNvbG9yIGJ5XG4vLyBkZWZhdWx0IHdpdGggcHJvZ3Jlc3NpdmVseSBkYXJrZXIgc2hhZGVzIHVzZWQgb24gYDpmb2N1c2AvYDpob3ZlcmAgYW5kIHdoZW5cbi8vIGA6YWN0aXZlYC5cbi8vXG4vLyBUYWJzIHNob3VsZCBzdGlsbCB3b3JrIGV2ZW4gd2hlbiB0aGVyZSBpcyBubyBKYXZhU2NyaXB0IG9yIENTUy4gVG8gbWFrZSB0aGlzXG4vLyB3b3JrLCBlbnN1cmUgdGhhdCBlYWNoIGB0YWJsaXN0X190YWJgIGlzIGFuIGBhYCB0YWcgd2l0aCBhbiBgaHJlZmAgdGhhdFxuLy8gcG9pbnRzIHRvIHRoZSBgaWRgIG9mIHRoZSByZWxldmFudCBgdGFibGlzdF9fcGFuZWxgLiBMaWtld2lzZSwgdGhlIGBpZGBzIG9mXG4vLyB0aGUgdGFiIGFuZCBwYW5lbCBzaG91bGQgbWF0Y2ggdXAgdmFpIHRoZSBgYXJpYS1jb250cm9sc2AgYW5kXG4vLyBgYXJpYS1sYWJlbGxlZGJ5YCBwcm9wZXJ0aWVzLiBUaGUgSmF2YVNjcmlwdCBjb21wb25lbnQsIGlmIHJ1biwgd2lsbFxuLy8gZ3VhcmFudGVlIGFsbCBvZiB0aGVzZSBhc3NvY2lhdGlvbnMuXG4vL1xuLy8gQGhlbHBlciBkb2Nrc190YWJsaXN0X3RhYlxuXG4udGFibGlzdF9fdGFiIHtcbiAgLy8gYm94IG1vZGVsXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMCBkZWZhdWx0KGNvbnRyb2wtcGFkZGluZyk7XG5cbiAgLy8gYmFja2Ryb3BcbiAgb3BhY2l0eTogMC4zO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogZGVmYXVsdChib3JkZXItcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIGJvcmRlci1jb2xvciAwLjNzIGVhc2U7XG5cbiAgLy8gdHlwZVxuICBAaW5jbHVkZSBmb250LXNpemUoY29udHJvbCk7XG4gIGxpbmUtaGVpZ2h0OiBkZWZhdWx0KGNvbnRyb2wtc2l6ZSk7XG4gIGNvbG9yOiB1aS1jb2xvcihncmF5LCBkYXJrZXIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlciB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICA+IC5pY29uIHtcbiAgICBoZWlnaHQ6IGRvdWJsZShkZWZhdWx0KHNwYWNpbmcpKTtcbiAgICB3aWR0aDogZG91YmxlKGRlZmF1bHQoc3BhY2luZykpO1xuICAgIEBpbmNsdWRlIGljb24tLXJlY29sb3IoZ3JheSwgZGFyayk7XG4gICAgc3Ryb2tlLXdpZHRoOiAzcHg7XG4gIH1cbn1cblxuLy8qXG4vLyBUaGUgdmFyaWF0aW9uIGFkZGVkIHRvIHRoZSB0YWIgd2hvc2UgY29ycmVzcG9uZGluZyB0YWIgaXMgY3VycmVudGx5XG4vLyB2aXNpYmxlLiBUaGlzIGNsYXNzIGNhbiBlaXRoZXIgYmUgYXBwbGllZCBtYW51YWxseSBieSBzZXR0aW5nIHRoZSBgOmFjdGl2ZT9gXG4vLyBhcmd1bWVudCB0byB0aGUgaGVscGVyIG1ldGhvZCB0byBgdHJ1ZWAgb3IgYnkgY2xpY2tpbmcgb24gdGhlIGNvcnJlY3QgdGFiXG4vLyAod2hpY2ggZG9lcyBhbGwgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBtYW5pcHVsYXRpb25zIHRocm91Z2ggdGhlIEphdmFTY3JpcHRcbi8vIGNvbXBvbmVudCkuXG4vL1xuLy8gQGRlbW9fdHlwZSBub25lXG4vLyBAc2V0X2J5IDphY3RpdmU/XG5cbi50YWJsaXN0X190YWItLWlzLWFjdGl2ZSB7XG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi8vKlxuLy8gVGhlIHRleHQgd2l0aGluIGEgdGFiLiBUaGlzIGNvbnRhaW5lciBpcyByZXF1aXJlZCBpbiBvcmRlciBmb3IgdGhlIHRleHQgYW5kXG4vLyAob3B0aW9uYWwpIGljb24gdG8gYmUgYWJvdmUgb25lIGFub3RoZXIuXG5cbi50YWJsaXN0X190YWJfX3RleHQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG5cbi8vKlxuLy8gQSBwYW5lbCB0aGF0IGNvbnRhaW5zIHRoZSBjb250ZW50IHRoYXQgc2hvdWxkIGJlIHNob3duIHdoZW4gdGhlIGFzc29jaWF0ZWRcbi8vIHRhYiBpcyBhY3RpdmUuXG4vL1xuLy8gQGhlbHBlciBkb2Nrc190YWJsaXN0X3BhbmVsXG5cbi50YWJsaXN0X19wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vKlxuLy8gQSBzdGF0ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIGFzc29jaWF0ZWQgdGFiIGlzIGFjdGl2ZSBhbmQgdGhlIGNvbnRlbnRzIG9mXG4vLyB0aGlzIHBhbmVsIHNob3VsZCBiZSBtYWRlIHZpc2libGUuIFRoZXJlIGlzIG5vIGFuaW1hdGlvbiB3aGVuIHN3aXRjaGluZ1xuLy8gYmV0d2VlbiB0YWJzIOKAlMKgdGhleSBzaW1wbHkgcG9wIGluIGFuZCBvdXQgb2Ygdmlldy5cbi8vXG4vLyBAZGVtb190eXBlIG5vbmVcbi8vIEBzZXRfYnkgOmFjdGl2ZT9cblxuLnRhYmxpc3RfX3BhbmVsLS1pcy1hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuXG5cbi8vKlxuLy8gQSBjb250YWluZXIgYXJvdW5kIGFsbCBvZiB0aGUgcGFuZWxzIGZvciBhIHRhYmxpc3QuIFRoaXMgY29udGFpbmVyXG4vLyB0ZWNobmljYWxseSBkb2VzIG5vdGhpbmcsIGJ1dCBpcyBhIG5pY2Ugd2F5IHRvIGlzb2xhdGUgYSBzZXQgb2YgdGFiIHBhbmVsc1xuLy8gZnJvbSB0aGUgc3Vycm91bmRpbmcgY29udGVudC5cblxuLnRhYmxpc3RfX3BhbmVsLWNvbnRhaW5lciB7fVxuIiwiLnZlcnRpY2FsLXNwYWNlciB7XG4gICAgbWFyZ2luOiBoYWxmKGRlZmF1bHQoc3BhY2luZykpIDA7XG59XG4iLCIudmVydGljYWwtc3RhY2sge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnZlcnRpY2FsLXN0YWNrX19pdGVtIHtcbiAgZmxleDogMSAxIDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnZlcnRpY2FsLXN0YWNrX19pdGVtLS1maXhlZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbiIsImJvZHkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJi54LXJheV9faGVscGVycy0teC1yYXktaXMtYWN0aXZlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cbi54LXJheSB7XG4gIGJhY2tncm91bmQ6IHVpLWNvbG9yKHdoaXRlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7IGJvdHRvbTogMDtcbiAgbGVmdDogMDsgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IC0xO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICBtaW4taGVpZ2h0OiAxMDAlO1xuXG4gIC5wYWdlLWhlYWRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cbn1cblxuLngtcmF5LS1pcy1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiAxMjAwO1xufVxuXG5cblxuLngtcmF5X19jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07XG59XG5cblxuLngtcmF5X19saXN0IHtcbiAgcGFkZGluZzogZGVmYXVsdChzcGFjaW5nKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3IoZ3JheSwgbGlnaHQpO1xufVxuXG4ueC1yYXlfX2Nsb3NlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cblxuXG4ueC1yYXlfX2RpYWdyYW0ge1xuICBwYWRkaW5nOiBkZWZhdWx0KHNwYWNpbmcpIDAgMDtcbiAgYmFja2dyb3VuZDogdWktY29sb3IoZ3JheSk7XG59XG5cblxuLngtcmF5X19kZXRhaWxzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLngtcmF5X19kZXRhaWxzLS1pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi54LXJheV9fZGV0YWlsc19fdGFnbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAwLjc1ZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHVpLWNvbG9yKGdyYXksIGxpZ2h0KTtcbiAgcGFkZGluZzogMC4zZW0gMC40ZW0gMC4yZW07XG4gIEBpbmNsdWRlIGRlZmF1bHQoYm9yZGVyLXJhZGl1cyk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjb2xvcjogdWktY29sb3IoZ3JheSwgZGFya2VyKTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4ueC1yYXlfX2RldGFpbHNfX2Rlc2NyaXB0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogKDIgKiBkZWZhdWx0KHNwYWNpbmcpKTtcbn1cbiIsIi8vICAgICAgICBfX18gICAgICAgICAgICAgICAgIF9fX19fICAgICAgICBfX18gICAgICAgICAgICAgICAgICAgICAgX19fICAgICAgICAgIF9fX1xuLy8gICAgICAgLyAgL1xcICAgICAgX19fICAgICAgLyAgLzo6XFwgICAgICAvICAvXFwgICAgICAgIF9fX19fICAgICAgIC8gIC9cXCAgICAgICAgLyAgL1xcXG4vLyAgICAgIC8gIC86L18gICAgLyAgL1xcICAgIC8gIC86L1xcOlxcICAgIC8gIC86L18gICAgICAvICAvOjpcXCAgICAgLyAgLzo6XFwgICAgICAvICAvOjpcXFxuLy8gICAgIC8gIC86LyAvXFwgIC8gIC86LyAgIC8gIC86LyAgXFw6XFwgIC8gIC86LyAvXFwgICAgLyAgLzovXFw6XFwgICAvICAvOi9cXDpcXCAgICAvICAvOi9cXDpcXFxuLy8gICAgLyAgLzovIC86OlxcL19fLzo6XFwgIC9fXy86LyBcXF9fXFw6fC8gIC86LyAvOi9fICAvICAvOi9+Lzo6XFwgLyAgLzovfi86OlxcICAvICAvOi9+LzovXG4vLyAgIC9fXy86LyAvOi9cXDpcXF9fXFwvXFw6XFxfXFwgIFxcOlxcIC8gIC86L19fLzovIC86LyAvXFwvX18vOi8gLzovXFw6L19fLzovIC86L1xcOlxcL19fLzovIC86L19fX1xuLy8gICBcXCAgXFw6XFwvOi9+LzovICBcXCAgXFw6XFwvXFwgIFxcOlxcICAvOi9cXCAgXFw6XFwvOi8gLzovXFwgIFxcOlxcLzovfi86fCAgXFw6XFwvOi9fX1xcL1xcICBcXDpcXC86Ojo6Oi9cbi8vICAgIFxcICBcXDo6LyAvOi8gICAgXFxfX1xcOjovXFwgIFxcOlxcLzovICBcXCAgXFw6Oi8gLzovICBcXCAgXFw6Oi8gLzovIFxcICBcXDo6LyAgICAgIFxcICBcXDo6L35+fn5cbi8vICAgICBcXF9fXFwvIC86LyAgICAgL19fLzovICBcXCAgXFw6Oi8gICAgXFwgIFxcOlxcLzovICAgIFxcICBcXDpcXC86LyAgIFxcICBcXDpcXCAgICAgICBcXCAgXFw6XFxcbi8vICAgICAgIC9fXy86LyAgICAgIFxcX19cXC8gICAgXFxfX1xcLyAgICAgIFxcICBcXDo6LyAgICAgIFxcICBcXDo6LyAgICAgXFwgIFxcOlxcICAgICAgIFxcICBcXDpcXFxuLy8gICAgICAgXFxfX1xcLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXF9fXFwvICAgICAgICBcXF9fXFwvICAgICAgIFxcX19cXC8gICAgICAgIFxcX19cXC9cblxuLy8qXG4vLyBAcGF0dGVybiBTaWRlYmFyXG4vLyBAZ3JvdXAgUGFydGlhbHNcbi8vXG4vLyBUaGUgbWFpbiBzaWRlYmFyIGZvciB0aGUgcGFnZS4gVGhpcyBzaWRlYmFyIGlzIGFjdGl2YXRlZCBieSBhIHRvZ2dsZVxuLy8gKGBzaWRlYmFyX190b2dnbGVyYCkgYW5kIHNsaWRlcyBvdmVyIHRoZSBtYWluIGNvbnRlbnQgKHdpdGhvdXQgbW92aW5nIHRoZVxuLy8gbWFpbiBjb250ZW50KS5cbi8vXG4vLyBAc2luY2UgMS4wLjBcblxuLy8qXG4vLyBUaGUgbWFpbiBwaWVjZSBvZiB0aGUgc2lkZWJhci4gVGhpcyBwcm92aWRlcyB0aGUgdmlzdWFsIGJhY2tpbmcgb2YgdGhlXG4vLyBzaWRlYmFyIGFuZCBtYW5hZ2VzIHRoZSByZXZlYWwvIGhpZGUgdHJhbnNpdGlvbi5cblxuLnNpZGViYXIge1xuICAvLyBwb3NpdGlvblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7IHRvcDogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gIG1heC13aWR0aDogMTVyZW07XG5cbiAgLy8gYm94IG1vZGVsXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMTAwdmg7XG5cbiAgLy8gYmFja2Ryb3BcbiAgYmFja2dyb3VuZC1jb2xvcjogdWktY29sb3Iod2hpdGUpO1xuICBAaW5jbHVkZSBkZWZhdWx0KGJveC1zaGFkb3cpO1xuXG4gIEBpbmNsdWRlIGFmdGVyKDQwcmVtKSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi8vKlxuLy8gVGhlIHN0YXRlIHRoYXQgaXMgYWRkZWQgYnkgdGhlIEphdmFTY3JpcHQgY29tcG9uZW50IHdoZW4gdGhlIHNpZGViYXIgaXNcbi8vIHZpc2libGUuXG5cbi5zaWRlYmFyLS1pcy1hY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xufVxuXG5cblxuLy8qXG4vLyBUaGUgY29udGFpbmVyIGZvciB0aGUgaXRlbSB0aGF0IHNob3VsZCBhY3RpdmF0ZSB0aGUgc2lkZWJhci4gVGhlIEphdmFTY3JpcHRcbi8vIGNvbXBvbmVudCB3aWxsIGxvb2sgZm9yIGFueSBpbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBhbmQgd2lsbCBhdHRhY2ggYGNsaWNrYFxuLy8gaGFuZGxlcnMgdGhhdCB0aGF0IHRvZ2dsZSB0aGUgc2lkZWJhcidzIHZpc2liaWxpdHkuXG5cbi5zaWRlYmFyX190b2dnbGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAvLyBAaW5jbHVkZSBhZnRlcig0MHJlbSkge1xuICAvLyAgIGRpc3BsYXk6IG5vbmU7XG4gIC8vIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
|