@charset "UTF-8";
/**
 *  Do not remove the comments below. It's the markers used by wiredep to inject
 *  sass dependencies when defined in the bower.json of your dependencies
 */
body {
  background-color: #fafafa !important; }

html body, input, button, h1, h2, h3, h4, h5, h6, textarea {
  font-family: Roboto, Helvetica, sans-serif !important; }

.success-message-sent p {
  color: #999;
  text-align: center; }

.success-message-sent h3 {
  color: #777;
  text-align: center; }

.notification-fsense {
  position: fixed;
  height: auto;
  padding: 4px 16px;
  box-sizing: border-box;
  min-width: 450px;
  text-align: center;
  left: 50%;
  line-height: 30px;
  font-size: 14px;
  font-weight: 400;
  border-radius: 0 0 4px 4px;
  top: 0;
  box-shadow: 0 0 3px grey;
  animation-name: notification-enter;
  animation-timing-function: ease-out;
  animation-duration: 0.3s;
  animation-iteration-count: 1; }

.notification-leave {
  top: -40px;
  animation-name: notification-leave;
  animation-timing-function: ease-out;
  animation-duration: 0.3s;
  animation-iteration-count: 1; }

.notification-default {
  background-color: grey; }

.notification-primary {
  background-color: grey; }

.notification-success {
  background-color: #58ce58;
  color: white; }

.notification-warning {
  background-color: grey; }

.notification-error {
  color: white;
  background-color: #dc6464; }

@keyframes notification-enter {
  from {
    top: -30px; }
  to {
    top: 0; } }

@keyframes notification-leave {
  from {
    top: 0px; }
  to {
    top: -40px; } }

/* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Material-Icons.woff2) format("woff2"); }

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: 'liga';
  -moz-font-feature-settings: 'liga';
  -moz-osx-font-smoothing: grayscale; }

/* Rules for sizing the icon. */
.material-icons.md-18 {
  font-size: 18px; }

.material-icons.md-24 {
  font-size: 24px; }

.material-icons.md-36 {
  font-size: 36px; }

.material-icons.md-48 {
  font-size: 48px; }

/* Rules for using icons as black on a light background. */
.material-icons.md-dark {
  color: rgba(0, 0, 0, 0.54); }

.material-icons.md-dark.md-inactive {
  color: rgba(0, 0, 0, 0.26); }

/* Rules for using icons as white on a dark background. */
.material-icons.md-light {
  color: white; }

.material-icons.md-light.md-inactive {
  color: rgba(255, 255, 255, 0.3); }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: url(../fonts/Roboto-Light.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  src: url(../fonts/Roboto-Regular.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  src: url(../fonts/Roboto-Medium.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  src: url(../fonts/Roboto-Bold.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F; }

/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+1F00-1FFF; }

/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0370-03FF; }

/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB; }

/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; }

/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400;
  src: url(../fonts/Roboto-Italic.ttf) format("truetype");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Material Design Lite */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */
/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
html {
  color: rgba(0,0,0, 0.87);
  font-size: 1em;
  line-height: 1.4; }

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * These selection rule sets have to be separate.
 * Customize the background color to match your design.
 */
::-moz-selection {
  background: #b3d4fc;
  text-shadow: none; }
::selection {
  background: #b3d4fc;
  text-shadow: none; }

/*
 * A better looking default horizontal rule
 */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle; }

/*
 * Remove default fieldset styles.
 */
fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

/*
 * Allow only vertical resizing of textareas.
 */
textarea {
  resize: vertical; }

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */
.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0; }

/* ==========================================================================
   Author's custom styles
   ========================================================================== */
/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Hide visually and from screen readers:
 */
.hidden {
  display: none !important; }

/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/*
 * Hide visually and from screen readers, but maintain layout
 */
.invisible {
  visibility: hidden; }

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.clearfix:after {
  clear: both; }

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */
@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */ }

@media print, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 1.25dppx), (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */ }

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after,
  *:first-letter,
  *:first-line {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster: http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important; }
  a,
  a:visited {
    text-decoration: underline; }
  a[href]:after {
    content: " (" attr(href) ")"; }
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: ""; }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid; }
  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group; }
  tr,
  img {
    page-break-inside: avoid; }
  img {
    max-width: 100% !important; }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  h2,
  h3 {
    page-break-after: avoid; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Remove the unwanted box around FAB buttons */
/* More info: http://goo.gl/IPwKi */
a, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu,
.mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {
  -webkit-tap-highlight-color: transparent;
  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }

/*
 * Make html take up the entire screen
 * Then set touch-action to avoid touch delay on mobile IE
 */
html {
  width: 100%;
  height: 100%;
  touch-action: manipulation; }

/*
* Make body take up the entire screen
* Remove body margin so layout containers don't cause extra overflow.
*/
body {
  width: 100%;
  min-height: 100%;
  margin: 0; }

/*
 * Main display reset for IE support.
 * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011
 */
main {
  display: block; }

/*
* Apply no display to elements with the hidden attribute.
* IE 9 and 10 support.
*/
*[hidden] {
  display: none !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
html, body {
  font-family: "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px; }

h1, h2, h3, h4, h5, h6, p {
  margin: 0;
  padding: 0; }

/**
  * Styles for HTML elements
  */
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54;
  font-size: 0.6em; }

h1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  margin-top: 24px;
  margin-bottom: 24px; }

h2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  margin-top: 24px;
  margin-bottom: 24px; }

h3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  margin-top: 24px;
  margin-bottom: 24px; }

h4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  margin-top: 24px;
  margin-bottom: 16px; }

h5 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  margin-top: 24px;
  margin-bottom: 16px; }

h6 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  margin-top: 24px;
  margin-bottom: 16px; }

p {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  margin-bottom: 16px; }

a {
  color: rgb(255,64,129);
  font-weight: 500; }

blockquote {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  position: relative;
  font-size: 24px;
  font-weight: 300;
  font-style: italic;
  line-height: 1.35;
  letter-spacing: 0.08em; }
  blockquote:before {
    position: absolute;
    left: -0.5em;
    content: '“'; }
  blockquote:after {
    content: '”';
    margin-left: -0.05em; }

mark {
  background-color: #f4ff81; }

dt {
  font-weight: 700; }

address {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  font-style: normal; }

ul, ol {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

/**
 * Class Name Styles
 */
.mdl-typography--display-4 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em; }

.mdl-typography--display-4-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 112px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  opacity: 0.54; }

.mdl-typography--display-3 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em; }

.mdl-typography--display-3-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 56px;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: -0.02em;
  opacity: 0.54; }

.mdl-typography--display-2 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px; }

.mdl-typography--display-2-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 45px;
  font-weight: 400;
  line-height: 48px;
  opacity: 0.54; }

.mdl-typography--display-1 {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px; }

.mdl-typography--display-1-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 40px;
  opacity: 0.54; }

.mdl-typography--headline {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale; }

.mdl-typography--headline-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 32px;
  -moz-osx-font-smoothing: grayscale;
  opacity: 0.87; }

.mdl-typography--title {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em; }

.mdl-typography--title-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  opacity: 0.87; }

.mdl-typography--subhead {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em; }

.mdl-typography--subhead-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  opacity: 0.87; }

.mdl-typography--body-2 {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-color-contrast {
  font-size: 14px;
  font-weight: bold;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1 {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-color-contrast {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-2-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-2-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--body-1-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0; }

.mdl-typography--body-1-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--caption {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-force-preferred-font {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--caption-color-contrast {
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--caption-force-preferred-font-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.54; }

.mdl-typography--menu {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--menu-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--button {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0; }

.mdl-typography--button-color-contrast {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  opacity: 0.87; }

.mdl-typography--text-left {
  text-align: left; }

.mdl-typography--text-right {
  text-align: right; }

.mdl-typography--text-center {
  text-align: center; }

.mdl-typography--text-justify {
  text-align: justify; }

.mdl-typography--text-nowrap {
  white-space: nowrap; }

.mdl-typography--text-lowercase {
  text-transform: lowercase; }

.mdl-typography--text-uppercase {
  text-transform: uppercase; }

.mdl-typography--text-capitalize {
  text-transform: capitalize; }

.mdl-typography--font-thin {
  font-weight: 200 !important; }

.mdl-typography--font-light {
  font-weight: 300 !important; }

.mdl-typography--font-regular {
  font-weight: 400 !important; }

.mdl-typography--font-medium {
  font-weight: 500 !important; }

.mdl-typography--font-bold {
  font-weight: 700 !important; }

.mdl-typography--font-black {
  font-weight: 900 !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-color-text--red {
  color: rgb(244,67,54) !important; }

.mdl-color--red {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-50 {
  color: rgb(255,235,238) !important; }

.mdl-color--red-50 {
  background-color: rgb(255,235,238) !important; }

.mdl-color-text--red-100 {
  color: rgb(255,205,210) !important; }

.mdl-color--red-100 {
  background-color: rgb(255,205,210) !important; }

.mdl-color-text--red-200 {
  color: rgb(239,154,154) !important; }

.mdl-color--red-200 {
  background-color: rgb(239,154,154) !important; }

.mdl-color-text--red-300 {
  color: rgb(229,115,115) !important; }

.mdl-color--red-300 {
  background-color: rgb(229,115,115) !important; }

.mdl-color-text--red-400 {
  color: rgb(239,83,80) !important; }

.mdl-color--red-400 {
  background-color: rgb(239,83,80) !important; }

.mdl-color-text--red-500 {
  color: rgb(244,67,54) !important; }

.mdl-color--red-500 {
  background-color: rgb(244,67,54) !important; }

.mdl-color-text--red-600 {
  color: rgb(229,57,53) !important; }

.mdl-color--red-600 {
  background-color: rgb(229,57,53) !important; }

.mdl-color-text--red-700 {
  color: rgb(211,47,47) !important; }

.mdl-color--red-700 {
  background-color: rgb(211,47,47) !important; }

.mdl-color-text--red-800 {
  color: rgb(198,40,40) !important; }

.mdl-color--red-800 {
  background-color: rgb(198,40,40) !important; }

.mdl-color-text--red-900 {
  color: rgb(183,28,28) !important; }

.mdl-color--red-900 {
  background-color: rgb(183,28,28) !important; }

.mdl-color-text--red-A100 {
  color: rgb(255,138,128) !important; }

.mdl-color--red-A100 {
  background-color: rgb(255,138,128) !important; }

.mdl-color-text--red-A200 {
  color: rgb(255,82,82) !important; }

.mdl-color--red-A200 {
  background-color: rgb(255,82,82) !important; }

.mdl-color-text--red-A400 {
  color: rgb(255,23,68) !important; }

.mdl-color--red-A400 {
  background-color: rgb(255,23,68) !important; }

.mdl-color-text--red-A700 {
  color: rgb(213,0,0) !important; }

.mdl-color--red-A700 {
  background-color: rgb(213,0,0) !important; }

.mdl-color-text--pink {
  color: rgb(233,30,99) !important; }

.mdl-color--pink {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-50 {
  color: rgb(252,228,236) !important; }

.mdl-color--pink-50 {
  background-color: rgb(252,228,236) !important; }

.mdl-color-text--pink-100 {
  color: rgb(248,187,208) !important; }

.mdl-color--pink-100 {
  background-color: rgb(248,187,208) !important; }

.mdl-color-text--pink-200 {
  color: rgb(244,143,177) !important; }

.mdl-color--pink-200 {
  background-color: rgb(244,143,177) !important; }

.mdl-color-text--pink-300 {
  color: rgb(240,98,146) !important; }

.mdl-color--pink-300 {
  background-color: rgb(240,98,146) !important; }

.mdl-color-text--pink-400 {
  color: rgb(236,64,122) !important; }

.mdl-color--pink-400 {
  background-color: rgb(236,64,122) !important; }

.mdl-color-text--pink-500 {
  color: rgb(233,30,99) !important; }

.mdl-color--pink-500 {
  background-color: rgb(233,30,99) !important; }

.mdl-color-text--pink-600 {
  color: rgb(216,27,96) !important; }

.mdl-color--pink-600 {
  background-color: rgb(216,27,96) !important; }

.mdl-color-text--pink-700 {
  color: rgb(194,24,91) !important; }

.mdl-color--pink-700 {
  background-color: rgb(194,24,91) !important; }

.mdl-color-text--pink-800 {
  color: rgb(173,20,87) !important; }

.mdl-color--pink-800 {
  background-color: rgb(173,20,87) !important; }

.mdl-color-text--pink-900 {
  color: rgb(136,14,79) !important; }

.mdl-color--pink-900 {
  background-color: rgb(136,14,79) !important; }

.mdl-color-text--pink-A100 {
  color: rgb(255,128,171) !important; }

.mdl-color--pink-A100 {
  background-color: rgb(255,128,171) !important; }

.mdl-color-text--pink-A200 {
  color: rgb(255,64,129) !important; }

.mdl-color--pink-A200 {
  background-color: rgb(255,64,129) !important; }

.mdl-color-text--pink-A400 {
  color: rgb(245,0,87) !important; }

.mdl-color--pink-A400 {
  background-color: rgb(245,0,87) !important; }

.mdl-color-text--pink-A700 {
  color: rgb(197,17,98) !important; }

.mdl-color--pink-A700 {
  background-color: rgb(197,17,98) !important; }

.mdl-color-text--purple {
  color: rgb(156,39,176) !important; }

.mdl-color--purple {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-50 {
  color: rgb(243,229,245) !important; }

.mdl-color--purple-50 {
  background-color: rgb(243,229,245) !important; }

.mdl-color-text--purple-100 {
  color: rgb(225,190,231) !important; }

.mdl-color--purple-100 {
  background-color: rgb(225,190,231) !important; }

.mdl-color-text--purple-200 {
  color: rgb(206,147,216) !important; }

.mdl-color--purple-200 {
  background-color: rgb(206,147,216) !important; }

.mdl-color-text--purple-300 {
  color: rgb(186,104,200) !important; }

.mdl-color--purple-300 {
  background-color: rgb(186,104,200) !important; }

.mdl-color-text--purple-400 {
  color: rgb(171,71,188) !important; }

.mdl-color--purple-400 {
  background-color: rgb(171,71,188) !important; }

.mdl-color-text--purple-500 {
  color: rgb(156,39,176) !important; }

.mdl-color--purple-500 {
  background-color: rgb(156,39,176) !important; }

.mdl-color-text--purple-600 {
  color: rgb(142,36,170) !important; }

.mdl-color--purple-600 {
  background-color: rgb(142,36,170) !important; }

.mdl-color-text--purple-700 {
  color: rgb(123,31,162) !important; }

.mdl-color--purple-700 {
  background-color: rgb(123,31,162) !important; }

.mdl-color-text--purple-800 {
  color: rgb(106,27,154) !important; }

.mdl-color--purple-800 {
  background-color: rgb(106,27,154) !important; }

.mdl-color-text--purple-900 {
  color: rgb(74,20,140) !important; }

.mdl-color--purple-900 {
  background-color: rgb(74,20,140) !important; }

.mdl-color-text--purple-A100 {
  color: rgb(234,128,252) !important; }

.mdl-color--purple-A100 {
  background-color: rgb(234,128,252) !important; }

.mdl-color-text--purple-A200 {
  color: rgb(224,64,251) !important; }

.mdl-color--purple-A200 {
  background-color: rgb(224,64,251) !important; }

.mdl-color-text--purple-A400 {
  color: rgb(213,0,249) !important; }

.mdl-color--purple-A400 {
  background-color: rgb(213,0,249) !important; }

.mdl-color-text--purple-A700 {
  color: rgb(170,0,255) !important; }

.mdl-color--purple-A700 {
  background-color: rgb(170,0,255) !important; }

.mdl-color-text--deep-purple {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-50 {
  color: rgb(237,231,246) !important; }

.mdl-color--deep-purple-50 {
  background-color: rgb(237,231,246) !important; }

.mdl-color-text--deep-purple-100 {
  color: rgb(209,196,233) !important; }

.mdl-color--deep-purple-100 {
  background-color: rgb(209,196,233) !important; }

.mdl-color-text--deep-purple-200 {
  color: rgb(179,157,219) !important; }

.mdl-color--deep-purple-200 {
  background-color: rgb(179,157,219) !important; }

.mdl-color-text--deep-purple-300 {
  color: rgb(149,117,205) !important; }

.mdl-color--deep-purple-300 {
  background-color: rgb(149,117,205) !important; }

.mdl-color-text--deep-purple-400 {
  color: rgb(126,87,194) !important; }

.mdl-color--deep-purple-400 {
  background-color: rgb(126,87,194) !important; }

.mdl-color-text--deep-purple-500 {
  color: rgb(103,58,183) !important; }

.mdl-color--deep-purple-500 {
  background-color: rgb(103,58,183) !important; }

.mdl-color-text--deep-purple-600 {
  color: rgb(94,53,177) !important; }

.mdl-color--deep-purple-600 {
  background-color: rgb(94,53,177) !important; }

.mdl-color-text--deep-purple-700 {
  color: rgb(81,45,168) !important; }

.mdl-color--deep-purple-700 {
  background-color: rgb(81,45,168) !important; }

.mdl-color-text--deep-purple-800 {
  color: rgb(69,39,160) !important; }

.mdl-color--deep-purple-800 {
  background-color: rgb(69,39,160) !important; }

.mdl-color-text--deep-purple-900 {
  color: rgb(49,27,146) !important; }

.mdl-color--deep-purple-900 {
  background-color: rgb(49,27,146) !important; }

.mdl-color-text--deep-purple-A100 {
  color: rgb(179,136,255) !important; }

.mdl-color--deep-purple-A100 {
  background-color: rgb(179,136,255) !important; }

.mdl-color-text--deep-purple-A200 {
  color: rgb(124,77,255) !important; }

.mdl-color--deep-purple-A200 {
  background-color: rgb(124,77,255) !important; }

.mdl-color-text--deep-purple-A400 {
  color: rgb(101,31,255) !important; }

.mdl-color--deep-purple-A400 {
  background-color: rgb(101,31,255) !important; }

.mdl-color-text--deep-purple-A700 {
  color: rgb(98,0,234) !important; }

.mdl-color--deep-purple-A700 {
  background-color: rgb(98,0,234) !important; }

.mdl-color-text--indigo {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-50 {
  color: rgb(232,234,246) !important; }

.mdl-color--indigo-50 {
  background-color: rgb(232,234,246) !important; }

.mdl-color-text--indigo-100 {
  color: rgb(197,202,233) !important; }

.mdl-color--indigo-100 {
  background-color: rgb(197,202,233) !important; }

.mdl-color-text--indigo-200 {
  color: rgb(159,168,218) !important; }

.mdl-color--indigo-200 {
  background-color: rgb(159,168,218) !important; }

.mdl-color-text--indigo-300 {
  color: rgb(121,134,203) !important; }

.mdl-color--indigo-300 {
  background-color: rgb(121,134,203) !important; }

.mdl-color-text--indigo-400 {
  color: rgb(92,107,192) !important; }

.mdl-color--indigo-400 {
  background-color: rgb(92,107,192) !important; }

.mdl-color-text--indigo-500 {
  color: rgb(63,81,181) !important; }

.mdl-color--indigo-500 {
  background-color: rgb(63,81,181) !important; }

.mdl-color-text--indigo-600 {
  color: rgb(57,73,171) !important; }

.mdl-color--indigo-600 {
  background-color: rgb(57,73,171) !important; }

.mdl-color-text--indigo-700 {
  color: rgb(48,63,159) !important; }

.mdl-color--indigo-700 {
  background-color: rgb(48,63,159) !important; }

.mdl-color-text--indigo-800 {
  color: rgb(40,53,147) !important; }

.mdl-color--indigo-800 {
  background-color: rgb(40,53,147) !important; }

.mdl-color-text--indigo-900 {
  color: rgb(26,35,126) !important; }

.mdl-color--indigo-900 {
  background-color: rgb(26,35,126) !important; }

.mdl-color-text--indigo-A100 {
  color: rgb(140,158,255) !important; }

.mdl-color--indigo-A100 {
  background-color: rgb(140,158,255) !important; }

.mdl-color-text--indigo-A200 {
  color: rgb(83,109,254) !important; }

.mdl-color--indigo-A200 {
  background-color: rgb(83,109,254) !important; }

.mdl-color-text--indigo-A400 {
  color: rgb(61,90,254) !important; }

.mdl-color--indigo-A400 {
  background-color: rgb(61,90,254) !important; }

.mdl-color-text--indigo-A700 {
  color: rgb(48,79,254) !important; }

.mdl-color--indigo-A700 {
  background-color: rgb(48,79,254) !important; }

.mdl-color-text--blue {
  color: rgb(33,150,243) !important; }

.mdl-color--blue {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-50 {
  color: rgb(227,242,253) !important; }

.mdl-color--blue-50 {
  background-color: rgb(227,242,253) !important; }

.mdl-color-text--blue-100 {
  color: rgb(187,222,251) !important; }

.mdl-color--blue-100 {
  background-color: rgb(187,222,251) !important; }

.mdl-color-text--blue-200 {
  color: rgb(144,202,249) !important; }

.mdl-color--blue-200 {
  background-color: rgb(144,202,249) !important; }

.mdl-color-text--blue-300 {
  color: rgb(100,181,246) !important; }

.mdl-color--blue-300 {
  background-color: rgb(100,181,246) !important; }

.mdl-color-text--blue-400 {
  color: rgb(66,165,245) !important; }

.mdl-color--blue-400 {
  background-color: rgb(66,165,245) !important; }

.mdl-color-text--blue-500 {
  color: rgb(33,150,243) !important; }

.mdl-color--blue-500 {
  background-color: rgb(33,150,243) !important; }

.mdl-color-text--blue-600 {
  color: rgb(30,136,229) !important; }

.mdl-color--blue-600 {
  background-color: rgb(30,136,229) !important; }

.mdl-color-text--blue-700 {
  color: rgb(25,118,210) !important; }

.mdl-color--blue-700 {
  background-color: rgb(25,118,210) !important; }

.mdl-color-text--blue-800 {
  color: rgb(21,101,192) !important; }

.mdl-color--blue-800 {
  background-color: rgb(21,101,192) !important; }

.mdl-color-text--blue-900 {
  color: rgb(13,71,161) !important; }

.mdl-color--blue-900 {
  background-color: rgb(13,71,161) !important; }

.mdl-color-text--blue-A100 {
  color: rgb(130,177,255) !important; }

.mdl-color--blue-A100 {
  background-color: rgb(130,177,255) !important; }

.mdl-color-text--blue-A200 {
  color: rgb(68,138,255) !important; }

.mdl-color--blue-A200 {
  background-color: rgb(68,138,255) !important; }

.mdl-color-text--blue-A400 {
  color: rgb(41,121,255) !important; }

.mdl-color--blue-A400 {
  background-color: rgb(41,121,255) !important; }

.mdl-color-text--blue-A700 {
  color: rgb(41,98,255) !important; }

.mdl-color--blue-A700 {
  background-color: rgb(41,98,255) !important; }

.mdl-color-text--light-blue {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-50 {
  color: rgb(225,245,254) !important; }

.mdl-color--light-blue-50 {
  background-color: rgb(225,245,254) !important; }

.mdl-color-text--light-blue-100 {
  color: rgb(179,229,252) !important; }

.mdl-color--light-blue-100 {
  background-color: rgb(179,229,252) !important; }

.mdl-color-text--light-blue-200 {
  color: rgb(129,212,250) !important; }

.mdl-color--light-blue-200 {
  background-color: rgb(129,212,250) !important; }

.mdl-color-text--light-blue-300 {
  color: rgb(79,195,247) !important; }

.mdl-color--light-blue-300 {
  background-color: rgb(79,195,247) !important; }

.mdl-color-text--light-blue-400 {
  color: rgb(41,182,246) !important; }

.mdl-color--light-blue-400 {
  background-color: rgb(41,182,246) !important; }

.mdl-color-text--light-blue-500 {
  color: rgb(3,169,244) !important; }

.mdl-color--light-blue-500 {
  background-color: rgb(3,169,244) !important; }

.mdl-color-text--light-blue-600 {
  color: rgb(3,155,229) !important; }

.mdl-color--light-blue-600 {
  background-color: rgb(3,155,229) !important; }

.mdl-color-text--light-blue-700 {
  color: rgb(2,136,209) !important; }

.mdl-color--light-blue-700 {
  background-color: rgb(2,136,209) !important; }

.mdl-color-text--light-blue-800 {
  color: rgb(2,119,189) !important; }

.mdl-color--light-blue-800 {
  background-color: rgb(2,119,189) !important; }

.mdl-color-text--light-blue-900 {
  color: rgb(1,87,155) !important; }

.mdl-color--light-blue-900 {
  background-color: rgb(1,87,155) !important; }

.mdl-color-text--light-blue-A100 {
  color: rgb(128,216,255) !important; }

.mdl-color--light-blue-A100 {
  background-color: rgb(128,216,255) !important; }

.mdl-color-text--light-blue-A200 {
  color: rgb(64,196,255) !important; }

.mdl-color--light-blue-A200 {
  background-color: rgb(64,196,255) !important; }

.mdl-color-text--light-blue-A400 {
  color: rgb(0,176,255) !important; }

.mdl-color--light-blue-A400 {
  background-color: rgb(0,176,255) !important; }

.mdl-color-text--light-blue-A700 {
  color: rgb(0,145,234) !important; }

.mdl-color--light-blue-A700 {
  background-color: rgb(0,145,234) !important; }

.mdl-color-text--cyan {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-50 {
  color: rgb(224,247,250) !important; }

.mdl-color--cyan-50 {
  background-color: rgb(224,247,250) !important; }

.mdl-color-text--cyan-100 {
  color: rgb(178,235,242) !important; }

.mdl-color--cyan-100 {
  background-color: rgb(178,235,242) !important; }

.mdl-color-text--cyan-200 {
  color: rgb(128,222,234) !important; }

.mdl-color--cyan-200 {
  background-color: rgb(128,222,234) !important; }

.mdl-color-text--cyan-300 {
  color: rgb(77,208,225) !important; }

.mdl-color--cyan-300 {
  background-color: rgb(77,208,225) !important; }

.mdl-color-text--cyan-400 {
  color: rgb(38,198,218) !important; }

.mdl-color--cyan-400 {
  background-color: rgb(38,198,218) !important; }

.mdl-color-text--cyan-500 {
  color: rgb(0,188,212) !important; }

.mdl-color--cyan-500 {
  background-color: rgb(0,188,212) !important; }

.mdl-color-text--cyan-600 {
  color: rgb(0,172,193) !important; }

.mdl-color--cyan-600 {
  background-color: rgb(0,172,193) !important; }

.mdl-color-text--cyan-700 {
  color: rgb(0,151,167) !important; }

.mdl-color--cyan-700 {
  background-color: rgb(0,151,167) !important; }

.mdl-color-text--cyan-800 {
  color: rgb(0,131,143) !important; }

.mdl-color--cyan-800 {
  background-color: rgb(0,131,143) !important; }

.mdl-color-text--cyan-900 {
  color: rgb(0,96,100) !important; }

.mdl-color--cyan-900 {
  background-color: rgb(0,96,100) !important; }

.mdl-color-text--cyan-A100 {
  color: rgb(132,255,255) !important; }

.mdl-color--cyan-A100 {
  background-color: rgb(132,255,255) !important; }

.mdl-color-text--cyan-A200 {
  color: rgb(24,255,255) !important; }

.mdl-color--cyan-A200 {
  background-color: rgb(24,255,255) !important; }

.mdl-color-text--cyan-A400 {
  color: rgb(0,229,255) !important; }

.mdl-color--cyan-A400 {
  background-color: rgb(0,229,255) !important; }

.mdl-color-text--cyan-A700 {
  color: rgb(0,184,212) !important; }

.mdl-color--cyan-A700 {
  background-color: rgb(0,184,212) !important; }

.mdl-color-text--teal {
  color: rgb(0,150,136) !important; }

.mdl-color--teal {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-50 {
  color: rgb(224,242,241) !important; }

.mdl-color--teal-50 {
  background-color: rgb(224,242,241) !important; }

.mdl-color-text--teal-100 {
  color: rgb(178,223,219) !important; }

.mdl-color--teal-100 {
  background-color: rgb(178,223,219) !important; }

.mdl-color-text--teal-200 {
  color: rgb(128,203,196) !important; }

.mdl-color--teal-200 {
  background-color: rgb(128,203,196) !important; }

.mdl-color-text--teal-300 {
  color: rgb(77,182,172) !important; }

.mdl-color--teal-300 {
  background-color: rgb(77,182,172) !important; }

.mdl-color-text--teal-400 {
  color: rgb(38,166,154) !important; }

.mdl-color--teal-400 {
  background-color: rgb(38,166,154) !important; }

.mdl-color-text--teal-500 {
  color: rgb(0,150,136) !important; }

.mdl-color--teal-500 {
  background-color: rgb(0,150,136) !important; }

.mdl-color-text--teal-600 {
  color: rgb(0,137,123) !important; }

.mdl-color--teal-600 {
  background-color: rgb(0,137,123) !important; }

.mdl-color-text--teal-700 {
  color: rgb(0,121,107) !important; }

.mdl-color--teal-700 {
  background-color: rgb(0,121,107) !important; }

.mdl-color-text--teal-800 {
  color: rgb(0,105,92) !important; }

.mdl-color--teal-800 {
  background-color: rgb(0,105,92) !important; }

.mdl-color-text--teal-900 {
  color: rgb(0,77,64) !important; }

.mdl-color--teal-900 {
  background-color: rgb(0,77,64) !important; }

.mdl-color-text--teal-A100 {
  color: rgb(167,255,235) !important; }

.mdl-color--teal-A100 {
  background-color: rgb(167,255,235) !important; }

.mdl-color-text--teal-A200 {
  color: rgb(100,255,218) !important; }

.mdl-color--teal-A200 {
  background-color: rgb(100,255,218) !important; }

.mdl-color-text--teal-A400 {
  color: rgb(29,233,182) !important; }

.mdl-color--teal-A400 {
  background-color: rgb(29,233,182) !important; }

.mdl-color-text--teal-A700 {
  color: rgb(0,191,165) !important; }

.mdl-color--teal-A700 {
  background-color: rgb(0,191,165) !important; }

.mdl-color-text--green {
  color: rgb(76,175,80) !important; }

.mdl-color--green {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-50 {
  color: rgb(232,245,233) !important; }

.mdl-color--green-50 {
  background-color: rgb(232,245,233) !important; }

.mdl-color-text--green-100 {
  color: rgb(200,230,201) !important; }

.mdl-color--green-100 {
  background-color: rgb(200,230,201) !important; }

.mdl-color-text--green-200 {
  color: rgb(165,214,167) !important; }

.mdl-color--green-200 {
  background-color: rgb(165,214,167) !important; }

.mdl-color-text--green-300 {
  color: rgb(129,199,132) !important; }

.mdl-color--green-300 {
  background-color: rgb(129,199,132) !important; }

.mdl-color-text--green-400 {
  color: rgb(102,187,106) !important; }

.mdl-color--green-400 {
  background-color: rgb(102,187,106) !important; }

.mdl-color-text--green-500 {
  color: rgb(76,175,80) !important; }

.mdl-color--green-500 {
  background-color: rgb(76,175,80) !important; }

.mdl-color-text--green-600 {
  color: rgb(67,160,71) !important; }

.mdl-color--green-600 {
  background-color: rgb(67,160,71) !important; }

.mdl-color-text--green-700 {
  color: rgb(56,142,60) !important; }

.mdl-color--green-700 {
  background-color: rgb(56,142,60) !important; }

.mdl-color-text--green-800 {
  color: rgb(46,125,50) !important; }

.mdl-color--green-800 {
  background-color: rgb(46,125,50) !important; }

.mdl-color-text--green-900 {
  color: rgb(27,94,32) !important; }

.mdl-color--green-900 {
  background-color: rgb(27,94,32) !important; }

.mdl-color-text--green-A100 {
  color: rgb(185,246,202) !important; }

.mdl-color--green-A100 {
  background-color: rgb(185,246,202) !important; }

.mdl-color-text--green-A200 {
  color: rgb(105,240,174) !important; }

.mdl-color--green-A200 {
  background-color: rgb(105,240,174) !important; }

.mdl-color-text--green-A400 {
  color: rgb(0,230,118) !important; }

.mdl-color--green-A400 {
  background-color: rgb(0,230,118) !important; }

.mdl-color-text--green-A700 {
  color: rgb(0,200,83) !important; }

.mdl-color--green-A700 {
  background-color: rgb(0,200,83) !important; }

.mdl-color-text--light-green {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-50 {
  color: rgb(241,248,233) !important; }

.mdl-color--light-green-50 {
  background-color: rgb(241,248,233) !important; }

.mdl-color-text--light-green-100 {
  color: rgb(220,237,200) !important; }

.mdl-color--light-green-100 {
  background-color: rgb(220,237,200) !important; }

.mdl-color-text--light-green-200 {
  color: rgb(197,225,165) !important; }

.mdl-color--light-green-200 {
  background-color: rgb(197,225,165) !important; }

.mdl-color-text--light-green-300 {
  color: rgb(174,213,129) !important; }

.mdl-color--light-green-300 {
  background-color: rgb(174,213,129) !important; }

.mdl-color-text--light-green-400 {
  color: rgb(156,204,101) !important; }

.mdl-color--light-green-400 {
  background-color: rgb(156,204,101) !important; }

.mdl-color-text--light-green-500 {
  color: rgb(139,195,74) !important; }

.mdl-color--light-green-500 {
  background-color: rgb(139,195,74) !important; }

.mdl-color-text--light-green-600 {
  color: rgb(124,179,66) !important; }

.mdl-color--light-green-600 {
  background-color: rgb(124,179,66) !important; }

.mdl-color-text--light-green-700 {
  color: rgb(104,159,56) !important; }

.mdl-color--light-green-700 {
  background-color: rgb(104,159,56) !important; }

.mdl-color-text--light-green-800 {
  color: rgb(85,139,47) !important; }

.mdl-color--light-green-800 {
  background-color: rgb(85,139,47) !important; }

.mdl-color-text--light-green-900 {
  color: rgb(51,105,30) !important; }

.mdl-color--light-green-900 {
  background-color: rgb(51,105,30) !important; }

.mdl-color-text--light-green-A100 {
  color: rgb(204,255,144) !important; }

.mdl-color--light-green-A100 {
  background-color: rgb(204,255,144) !important; }

.mdl-color-text--light-green-A200 {
  color: rgb(178,255,89) !important; }

.mdl-color--light-green-A200 {
  background-color: rgb(178,255,89) !important; }

.mdl-color-text--light-green-A400 {
  color: rgb(118,255,3) !important; }

.mdl-color--light-green-A400 {
  background-color: rgb(118,255,3) !important; }

.mdl-color-text--light-green-A700 {
  color: rgb(100,221,23) !important; }

.mdl-color--light-green-A700 {
  background-color: rgb(100,221,23) !important; }

.mdl-color-text--lime {
  color: rgb(205,220,57) !important; }

.mdl-color--lime {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-50 {
  color: rgb(249,251,231) !important; }

.mdl-color--lime-50 {
  background-color: rgb(249,251,231) !important; }

.mdl-color-text--lime-100 {
  color: rgb(240,244,195) !important; }

.mdl-color--lime-100 {
  background-color: rgb(240,244,195) !important; }

.mdl-color-text--lime-200 {
  color: rgb(230,238,156) !important; }

.mdl-color--lime-200 {
  background-color: rgb(230,238,156) !important; }

.mdl-color-text--lime-300 {
  color: rgb(220,231,117) !important; }

.mdl-color--lime-300 {
  background-color: rgb(220,231,117) !important; }

.mdl-color-text--lime-400 {
  color: rgb(212,225,87) !important; }

.mdl-color--lime-400 {
  background-color: rgb(212,225,87) !important; }

.mdl-color-text--lime-500 {
  color: rgb(205,220,57) !important; }

.mdl-color--lime-500 {
  background-color: rgb(205,220,57) !important; }

.mdl-color-text--lime-600 {
  color: rgb(192,202,51) !important; }

.mdl-color--lime-600 {
  background-color: rgb(192,202,51) !important; }

.mdl-color-text--lime-700 {
  color: rgb(175,180,43) !important; }

.mdl-color--lime-700 {
  background-color: rgb(175,180,43) !important; }

.mdl-color-text--lime-800 {
  color: rgb(158,157,36) !important; }

.mdl-color--lime-800 {
  background-color: rgb(158,157,36) !important; }

.mdl-color-text--lime-900 {
  color: rgb(130,119,23) !important; }

.mdl-color--lime-900 {
  background-color: rgb(130,119,23) !important; }

.mdl-color-text--lime-A100 {
  color: rgb(244,255,129) !important; }

.mdl-color--lime-A100 {
  background-color: rgb(244,255,129) !important; }

.mdl-color-text--lime-A200 {
  color: rgb(238,255,65) !important; }

.mdl-color--lime-A200 {
  background-color: rgb(238,255,65) !important; }

.mdl-color-text--lime-A400 {
  color: rgb(198,255,0) !important; }

.mdl-color--lime-A400 {
  background-color: rgb(198,255,0) !important; }

.mdl-color-text--lime-A700 {
  color: rgb(174,234,0) !important; }

.mdl-color--lime-A700 {
  background-color: rgb(174,234,0) !important; }

.mdl-color-text--yellow {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-50 {
  color: rgb(255,253,231) !important; }

.mdl-color--yellow-50 {
  background-color: rgb(255,253,231) !important; }

.mdl-color-text--yellow-100 {
  color: rgb(255,249,196) !important; }

.mdl-color--yellow-100 {
  background-color: rgb(255,249,196) !important; }

.mdl-color-text--yellow-200 {
  color: rgb(255,245,157) !important; }

.mdl-color--yellow-200 {
  background-color: rgb(255,245,157) !important; }

.mdl-color-text--yellow-300 {
  color: rgb(255,241,118) !important; }

.mdl-color--yellow-300 {
  background-color: rgb(255,241,118) !important; }

.mdl-color-text--yellow-400 {
  color: rgb(255,238,88) !important; }

.mdl-color--yellow-400 {
  background-color: rgb(255,238,88) !important; }

.mdl-color-text--yellow-500 {
  color: rgb(255,235,59) !important; }

.mdl-color--yellow-500 {
  background-color: rgb(255,235,59) !important; }

.mdl-color-text--yellow-600 {
  color: rgb(253,216,53) !important; }

.mdl-color--yellow-600 {
  background-color: rgb(253,216,53) !important; }

.mdl-color-text--yellow-700 {
  color: rgb(251,192,45) !important; }

.mdl-color--yellow-700 {
  background-color: rgb(251,192,45) !important; }

.mdl-color-text--yellow-800 {
  color: rgb(249,168,37) !important; }

.mdl-color--yellow-800 {
  background-color: rgb(249,168,37) !important; }

.mdl-color-text--yellow-900 {
  color: rgb(245,127,23) !important; }

.mdl-color--yellow-900 {
  background-color: rgb(245,127,23) !important; }

.mdl-color-text--yellow-A100 {
  color: rgb(255,255,141) !important; }

.mdl-color--yellow-A100 {
  background-color: rgb(255,255,141) !important; }

.mdl-color-text--yellow-A200 {
  color: rgb(255,255,0) !important; }

.mdl-color--yellow-A200 {
  background-color: rgb(255,255,0) !important; }

.mdl-color-text--yellow-A400 {
  color: rgb(255,234,0) !important; }

.mdl-color--yellow-A400 {
  background-color: rgb(255,234,0) !important; }

.mdl-color-text--yellow-A700 {
  color: rgb(255,214,0) !important; }

.mdl-color--yellow-A700 {
  background-color: rgb(255,214,0) !important; }

.mdl-color-text--amber {
  color: rgb(255,193,7) !important; }

.mdl-color--amber {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-50 {
  color: rgb(255,248,225) !important; }

.mdl-color--amber-50 {
  background-color: rgb(255,248,225) !important; }

.mdl-color-text--amber-100 {
  color: rgb(255,236,179) !important; }

.mdl-color--amber-100 {
  background-color: rgb(255,236,179) !important; }

.mdl-color-text--amber-200 {
  color: rgb(255,224,130) !important; }

.mdl-color--amber-200 {
  background-color: rgb(255,224,130) !important; }

.mdl-color-text--amber-300 {
  color: rgb(255,213,79) !important; }

.mdl-color--amber-300 {
  background-color: rgb(255,213,79) !important; }

.mdl-color-text--amber-400 {
  color: rgb(255,202,40) !important; }

.mdl-color--amber-400 {
  background-color: rgb(255,202,40) !important; }

.mdl-color-text--amber-500 {
  color: rgb(255,193,7) !important; }

.mdl-color--amber-500 {
  background-color: rgb(255,193,7) !important; }

.mdl-color-text--amber-600 {
  color: rgb(255,179,0) !important; }

.mdl-color--amber-600 {
  background-color: rgb(255,179,0) !important; }

.mdl-color-text--amber-700 {
  color: rgb(255,160,0) !important; }

.mdl-color--amber-700 {
  background-color: rgb(255,160,0) !important; }

.mdl-color-text--amber-800 {
  color: rgb(255,143,0) !important; }

.mdl-color--amber-800 {
  background-color: rgb(255,143,0) !important; }

.mdl-color-text--amber-900 {
  color: rgb(255,111,0) !important; }

.mdl-color--amber-900 {
  background-color: rgb(255,111,0) !important; }

.mdl-color-text--amber-A100 {
  color: rgb(255,229,127) !important; }

.mdl-color--amber-A100 {
  background-color: rgb(255,229,127) !important; }

.mdl-color-text--amber-A200 {
  color: rgb(255,215,64) !important; }

.mdl-color--amber-A200 {
  background-color: rgb(255,215,64) !important; }

.mdl-color-text--amber-A400 {
  color: rgb(255,196,0) !important; }

.mdl-color--amber-A400 {
  background-color: rgb(255,196,0) !important; }

.mdl-color-text--amber-A700 {
  color: rgb(255,171,0) !important; }

.mdl-color--amber-A700 {
  background-color: rgb(255,171,0) !important; }

.mdl-color-text--orange {
  color: rgb(255,152,0) !important; }

.mdl-color--orange {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-50 {
  color: rgb(255,243,224) !important; }

.mdl-color--orange-50 {
  background-color: rgb(255,243,224) !important; }

.mdl-color-text--orange-100 {
  color: rgb(255,224,178) !important; }

.mdl-color--orange-100 {
  background-color: rgb(255,224,178) !important; }

.mdl-color-text--orange-200 {
  color: rgb(255,204,128) !important; }

.mdl-color--orange-200 {
  background-color: rgb(255,204,128) !important; }

.mdl-color-text--orange-300 {
  color: rgb(255,183,77) !important; }

.mdl-color--orange-300 {
  background-color: rgb(255,183,77) !important; }

.mdl-color-text--orange-400 {
  color: rgb(255,167,38) !important; }

.mdl-color--orange-400 {
  background-color: rgb(255,167,38) !important; }

.mdl-color-text--orange-500 {
  color: rgb(255,152,0) !important; }

.mdl-color--orange-500 {
  background-color: rgb(255,152,0) !important; }

.mdl-color-text--orange-600 {
  color: rgb(251,140,0) !important; }

.mdl-color--orange-600 {
  background-color: rgb(251,140,0) !important; }

.mdl-color-text--orange-700 {
  color: rgb(245,124,0) !important; }

.mdl-color--orange-700 {
  background-color: rgb(245,124,0) !important; }

.mdl-color-text--orange-800 {
  color: rgb(239,108,0) !important; }

.mdl-color--orange-800 {
  background-color: rgb(239,108,0) !important; }

.mdl-color-text--orange-900 {
  color: rgb(230,81,0) !important; }

.mdl-color--orange-900 {
  background-color: rgb(230,81,0) !important; }

.mdl-color-text--orange-A100 {
  color: rgb(255,209,128) !important; }

.mdl-color--orange-A100 {
  background-color: rgb(255,209,128) !important; }

.mdl-color-text--orange-A200 {
  color: rgb(255,171,64) !important; }

.mdl-color--orange-A200 {
  background-color: rgb(255,171,64) !important; }

.mdl-color-text--orange-A400 {
  color: rgb(255,145,0) !important; }

.mdl-color--orange-A400 {
  background-color: rgb(255,145,0) !important; }

.mdl-color-text--orange-A700 {
  color: rgb(255,109,0) !important; }

.mdl-color--orange-A700 {
  background-color: rgb(255,109,0) !important; }

.mdl-color-text--deep-orange {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-50 {
  color: rgb(251,233,231) !important; }

.mdl-color--deep-orange-50 {
  background-color: rgb(251,233,231) !important; }

.mdl-color-text--deep-orange-100 {
  color: rgb(255,204,188) !important; }

.mdl-color--deep-orange-100 {
  background-color: rgb(255,204,188) !important; }

.mdl-color-text--deep-orange-200 {
  color: rgb(255,171,145) !important; }

.mdl-color--deep-orange-200 {
  background-color: rgb(255,171,145) !important; }

.mdl-color-text--deep-orange-300 {
  color: rgb(255,138,101) !important; }

.mdl-color--deep-orange-300 {
  background-color: rgb(255,138,101) !important; }

.mdl-color-text--deep-orange-400 {
  color: rgb(255,112,67) !important; }

.mdl-color--deep-orange-400 {
  background-color: rgb(255,112,67) !important; }

.mdl-color-text--deep-orange-500 {
  color: rgb(255,87,34) !important; }

.mdl-color--deep-orange-500 {
  background-color: rgb(255,87,34) !important; }

.mdl-color-text--deep-orange-600 {
  color: rgb(244,81,30) !important; }

.mdl-color--deep-orange-600 {
  background-color: rgb(244,81,30) !important; }

.mdl-color-text--deep-orange-700 {
  color: rgb(230,74,25) !important; }

.mdl-color--deep-orange-700 {
  background-color: rgb(230,74,25) !important; }

.mdl-color-text--deep-orange-800 {
  color: rgb(216,67,21) !important; }

.mdl-color--deep-orange-800 {
  background-color: rgb(216,67,21) !important; }

.mdl-color-text--deep-orange-900 {
  color: rgb(191,54,12) !important; }

.mdl-color--deep-orange-900 {
  background-color: rgb(191,54,12) !important; }

.mdl-color-text--deep-orange-A100 {
  color: rgb(255,158,128) !important; }

.mdl-color--deep-orange-A100 {
  background-color: rgb(255,158,128) !important; }

.mdl-color-text--deep-orange-A200 {
  color: rgb(255,110,64) !important; }

.mdl-color--deep-orange-A200 {
  background-color: rgb(255,110,64) !important; }

.mdl-color-text--deep-orange-A400 {
  color: rgb(255,61,0) !important; }

.mdl-color--deep-orange-A400 {
  background-color: rgb(255,61,0) !important; }

.mdl-color-text--deep-orange-A700 {
  color: rgb(221,44,0) !important; }

.mdl-color--deep-orange-A700 {
  background-color: rgb(221,44,0) !important; }

.mdl-color-text--brown {
  color: rgb(121,85,72) !important; }

.mdl-color--brown {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-50 {
  color: rgb(239,235,233) !important; }

.mdl-color--brown-50 {
  background-color: rgb(239,235,233) !important; }

.mdl-color-text--brown-100 {
  color: rgb(215,204,200) !important; }

.mdl-color--brown-100 {
  background-color: rgb(215,204,200) !important; }

.mdl-color-text--brown-200 {
  color: rgb(188,170,164) !important; }

.mdl-color--brown-200 {
  background-color: rgb(188,170,164) !important; }

.mdl-color-text--brown-300 {
  color: rgb(161,136,127) !important; }

.mdl-color--brown-300 {
  background-color: rgb(161,136,127) !important; }

.mdl-color-text--brown-400 {
  color: rgb(141,110,99) !important; }

.mdl-color--brown-400 {
  background-color: rgb(141,110,99) !important; }

.mdl-color-text--brown-500 {
  color: rgb(121,85,72) !important; }

.mdl-color--brown-500 {
  background-color: rgb(121,85,72) !important; }

.mdl-color-text--brown-600 {
  color: rgb(109,76,65) !important; }

.mdl-color--brown-600 {
  background-color: rgb(109,76,65) !important; }

.mdl-color-text--brown-700 {
  color: rgb(93,64,55) !important; }

.mdl-color--brown-700 {
  background-color: rgb(93,64,55) !important; }

.mdl-color-text--brown-800 {
  color: rgb(78,52,46) !important; }

.mdl-color--brown-800 {
  background-color: rgb(78,52,46) !important; }

.mdl-color-text--brown-900 {
  color: rgb(62,39,35) !important; }

.mdl-color--brown-900 {
  background-color: rgb(62,39,35) !important; }

.mdl-color-text--grey {
  color: rgb(158,158,158) !important; }

.mdl-color--grey {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-50 {
  color: rgb(250,250,250) !important; }

.mdl-color--grey-50 {
  background-color: rgb(250,250,250) !important; }

.mdl-color-text--grey-100 {
  color: rgb(245,245,245) !important; }

.mdl-color--grey-100 {
  background-color: rgb(245,245,245) !important; }

.mdl-color-text--grey-200 {
  color: rgb(238,238,238) !important; }

.mdl-color--grey-200 {
  background-color: rgb(238,238,238) !important; }

.mdl-color-text--grey-300 {
  color: rgb(224,224,224) !important; }

.mdl-color--grey-300 {
  background-color: rgb(224,224,224) !important; }

.mdl-color-text--grey-400 {
  color: rgb(189,189,189) !important; }

.mdl-color--grey-400 {
  background-color: rgb(189,189,189) !important; }

.mdl-color-text--grey-500 {
  color: rgb(158,158,158) !important; }

.mdl-color--grey-500 {
  background-color: rgb(158,158,158) !important; }

.mdl-color-text--grey-600 {
  color: rgb(117,117,117) !important; }

.mdl-color--grey-600 {
  background-color: rgb(117,117,117) !important; }

.mdl-color-text--grey-700 {
  color: rgb(97,97,97) !important; }

.mdl-color--grey-700 {
  background-color: rgb(97,97,97) !important; }

.mdl-color-text--grey-800 {
  color: rgb(66,66,66) !important; }

.mdl-color--grey-800 {
  background-color: rgb(66,66,66) !important; }

.mdl-color-text--grey-900 {
  color: rgb(33,33,33) !important; }

.mdl-color--grey-900 {
  background-color: rgb(33,33,33) !important; }

.mdl-color-text--blue-grey {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-50 {
  color: rgb(236,239,241) !important; }

.mdl-color--blue-grey-50 {
  background-color: rgb(236,239,241) !important; }

.mdl-color-text--blue-grey-100 {
  color: rgb(207,216,220) !important; }

.mdl-color--blue-grey-100 {
  background-color: rgb(207,216,220) !important; }

.mdl-color-text--blue-grey-200 {
  color: rgb(176,190,197) !important; }

.mdl-color--blue-grey-200 {
  background-color: rgb(176,190,197) !important; }

.mdl-color-text--blue-grey-300 {
  color: rgb(144,164,174) !important; }

.mdl-color--blue-grey-300 {
  background-color: rgb(144,164,174) !important; }

.mdl-color-text--blue-grey-400 {
  color: rgb(120,144,156) !important; }

.mdl-color--blue-grey-400 {
  background-color: rgb(120,144,156) !important; }

.mdl-color-text--blue-grey-500 {
  color: rgb(96,125,139) !important; }

.mdl-color--blue-grey-500 {
  background-color: rgb(96,125,139) !important; }

.mdl-color-text--blue-grey-600 {
  color: rgb(84,110,122) !important; }

.mdl-color--blue-grey-600 {
  background-color: rgb(84,110,122) !important; }

.mdl-color-text--blue-grey-700 {
  color: rgb(69,90,100) !important; }

.mdl-color--blue-grey-700 {
  background-color: rgb(69,90,100) !important; }

.mdl-color-text--blue-grey-800 {
  color: rgb(55,71,79) !important; }

.mdl-color--blue-grey-800 {
  background-color: rgb(55,71,79) !important; }

.mdl-color-text--blue-grey-900 {
  color: rgb(38,50,56) !important; }

.mdl-color--blue-grey-900 {
  background-color: rgb(38,50,56) !important; }

.mdl-color--black {
  background-color: rgb(0,0,0) !important; }

.mdl-color-text--black {
  color: rgb(0,0,0) !important; }

.mdl-color--white {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--white {
  color: rgb(255,255,255) !important; }

.mdl-color--primary {
  background-color: rgb(63,81,181) !important; }

.mdl-color--primary-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color--primary-dark {
  background-color: rgb(48,63,159) !important; }

.mdl-color--accent {
  background-color: rgb(255,64,129) !important; }

.mdl-color--accent-contrast {
  background-color: rgb(255,255,255) !important; }

.mdl-color-text--primary {
  color: rgb(63,81,181) !important; }

.mdl-color-text--primary-contrast {
  color: rgb(255,255,255) !important; }

.mdl-color-text--primary-dark {
  color: rgb(48,63,159) !important; }

.mdl-color-text--accent {
  color: rgb(255,64,129) !important; }

.mdl-color-text--accent-contrast {
  color: rgb(255,255,255) !important; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-ripple {
  background: rgb(0,0,0);
  border-radius: 50%;
  height: 50px;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translate(-50%, -50%);
  width: 50px;
  overflow: hidden; }
  .mdl-ripple.is-animating {
    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); }
  .mdl-ripple.is-visible {
    opacity: 0.3; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-animation--default {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--fast-out-slow-in {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-animation--linear-out-slow-in {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

.mdl-animation--fast-out-linear-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-badge {
  position: relative;
  white-space: nowrap;
  margin-right: 24px; }
  .mdl-badge:not([data-badge]) {
    margin-right: auto; }
  .mdl-badge[data-badge]:after {
    content: attr(data-badge);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-content: center;
    align-items: center;
    position: absolute;
    top: -11px;
    right: -24px;
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
    font-weight: 600;
    font-size: 12px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button .mdl-badge[data-badge]:after {
      top: -10px;
      right: -5px; }
  .mdl-badge.mdl-badge--no-background[data-badge]:after {
    color: rgb(255,64,129);
    background: rgb(255,255,255);
    box-shadow: 0 0 1px gray; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-button {
  background: transparent;
  border: none;
  border-radius: 2px;
  color: rgb(0,0,0);
  position: relative;
  height: 36px;
  min-width: 64px;
  padding: 0 16px;
  display: inline-block;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0;
  overflow: hidden;
  will-change: box-shadow, transform;
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  outline: none;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  line-height: 36px;
  vertical-align: middle; }
  .mdl-button::-moz-focus-inner {
    border: 0; }
  .mdl-button:hover {
    background-color: rgba(158,158,158, 0.20); }
  .mdl-button:focus:not(:active) {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-button:active {
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button.mdl-button--colored {
    color: rgb(63,81,181); }
    .mdl-button.mdl-button--colored:focus:not(:active) {
      background-color: rgba(0,0,0, 0.12); }

input.mdl-button[type="submit"] {
  -webkit-appearance: none; }

.mdl-button--raised {
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
  .mdl-button--raised:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--raised.mdl-button--colored {
    background: rgb(63,81,181);
    color: rgb(255,255,255); }
    .mdl-button--raised.mdl-button--colored:hover {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:active {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored:focus:not(:active) {
      background-color: rgb(63,81,181); }
    .mdl-button--raised.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--fab {
  border-radius: 50%;
  font-size: 24px;
  height: 56px;
  margin: auto;
  min-width: 56px;
  width: 56px;
  padding: 0;
  overflow: hidden;
  background: rgba(158,158,158, 0.20);
  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
  position: relative;
  line-height: normal; }
  .mdl-button--fab .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--fab.mdl-button--mini-fab {
    height: 40px;
    min-width: 40px;
    width: 40px; }
  .mdl-button--fab .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-button--fab:active {
    box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab:focus:not(:active) {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);
    background-color: rgba(158,158,158, 0.40); }
  .mdl-button--fab.mdl-button--colored {
    background: rgb(255,64,129);
    color: rgb(255,255,255); }
    .mdl-button--fab.mdl-button--colored:hover {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:focus:not(:active) {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored:active {
      background-color: rgb(255,64,129); }
    .mdl-button--fab.mdl-button--colored .mdl-ripple {
      background: rgb(255,255,255); }

.mdl-button--icon {
  border-radius: 50%;
  font-size: 24px;
  height: 32px;
  margin-left: 0;
  margin-right: 0;
  min-width: 32px;
  width: 32px;
  padding: 0;
  overflow: hidden;
  color: inherit;
  line-height: normal; }
  .mdl-button--icon .material-icons {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-12px, -12px);
    line-height: 24px;
    width: 24px; }
  .mdl-button--icon.mdl-button--mini-icon {
    height: 24px;
    min-width: 24px;
    width: 24px; }
    .mdl-button--icon.mdl-button--mini-icon .material-icons {
      top: 0px;
      left: 0px; }
  .mdl-button--icon .mdl-button__ripple-container {
    border-radius: 50%;
    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }

.mdl-button__ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }
  .mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,
  .mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {
    background-color: transparent; }

.mdl-button--primary.mdl-button--primary {
  color: rgb(63,81,181); }
  .mdl-button--primary.mdl-button--primary .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(63,81,181); }

.mdl-button--accent.mdl-button--accent {
  color: rgb(255,64,129); }
  .mdl-button--accent.mdl-button--accent .mdl-ripple {
    background: rgb(255,255,255); }
  .mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab {
    color: rgb(255,255,255);
    background-color: rgb(255,64,129); }

.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26);
  cursor: default;
  background-color: transparent; }

.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0,0,0, 0.26); }

.mdl-button .material-icons {
  vertical-align: middle; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-card {
  display: flex;
  flex-direction: column;
  font-size: 16px;
  font-weight: 400;
  min-height: 200px;
  overflow: hidden;
  width: 330px;
  z-index: 1;
  position: relative;
  background: rgb(255,255,255);
  border-radius: 2px;
  box-sizing: border-box; }

.mdl-card__media {
  background-color: rgb(255,64,129);
  background-repeat: repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-origin: padding-box;
  background-attachment: scroll;
  box-sizing: border-box; }

.mdl-card__title {
  align-items: center;
  color: rgb(0,0,0);
  display: block;
  display: flex;
  justify-content: stretch;
  line-height: normal;
  padding: 16px 16px;
  perspective-origin: 165px 56px;
  transform-origin: 165px 56px;
  box-sizing: border-box; }
  .mdl-card__title.mdl-card--border {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card__title-text {
  align-self: flex-end;
  color: inherit;
  display: block;
  display: flex;
  font-size: 24px;
  font-weight: 300;
  line-height: normal;
  overflow: hidden;
  transform-origin: 149px 48px;
  margin: 0; }

.mdl-card__subtitle-text {
  font-size: 14px;
  color: rgba(0,0,0, 0.54);
  margin: 0; }

.mdl-card__supporting-text {
  color: rgba(0,0,0, 0.54);
  font-size: 13px;
  line-height: 18px;
  overflow: hidden;
  padding: 16px 16px;
  width: 90%; }

.mdl-card__actions {
  font-size: 16px;
  line-height: normal;
  width: 100%;
  background-color: rgba(0, 0, 0, 0);
  padding: 8px;
  box-sizing: border-box; }
  .mdl-card__actions.mdl-card--border {
    border-top: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card--expand {
  flex-grow: 1; }

.mdl-card__menu {
  position: absolute;
  right: 16px;
  top: 16px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-checkbox {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0; }
  .mdl-checkbox.is-upgraded {
    padding-left: 24px; }

.mdl-checkbox__input {
  line-height: 24px; }
  .mdl-checkbox.is-upgraded .mdl-checkbox__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-checkbox__box-outline {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  overflow: hidden;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 2px;
  z-index: 2; }
  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
    border: 2px solid rgb(63,81,181); }
  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__focus-helper {
  position: absolute;
  top: 3px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-checkbox.is-focused .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
    box-shadow: 0 0 0px 8px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-checkbox__tick-outline {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-mask: url("/images/tick-mask.svg?embed");
          mask: url("/images/tick-mask.svg?embed");
  background: transparent;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: background; }
  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
    background: rgb(63,81,181) url("/images/tick.svg?embed"); }
  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background: rgba(0,0,0, 0.26) url("/images/tick.svg?embed"); }

.mdl-checkbox__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0; }
  .mdl-checkbox.is-disabled .mdl-checkbox__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-checkbox__ripple-container {
  position: absolute;
  z-index: 2;
  top: -6px;
  left: -10px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-checkbox__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
    cursor: auto; }
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-data-table {
  position: relative;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-collapse: collapse;
  white-space: nowrap;
  font-size: 13px;
  background-color: rgb(255,255,255); }
  .mdl-data-table thead {
    padding-bottom: 3px; }
    .mdl-data-table thead .mdl-data-table__select {
      margin-top: 0; }
  .mdl-data-table tbody tr {
    position: relative;
    height: 48px;
    transition-duration: 0.28s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-property: background-color; }
    .mdl-data-table tbody tr.is-selected {
      background-color: #e0e0e0; }
    .mdl-data-table tbody tr:hover {
      background-color: #eeeeee; }
  .mdl-data-table td, .mdl-data-table th {
    padding: 0 18px 0 18px;
    text-align: right; }
    .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type {
      padding-left: 24px; }
    .mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type {
      padding-right: 24px; }
  .mdl-data-table td {
    position: relative;
    vertical-align: top;
    height: 48px;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    padding-top: 12px;
    box-sizing: border-box; }
    .mdl-data-table td .mdl-data-table__select {
      vertical-align: top;
      position: absolute;
      left: 24px; }
  .mdl-data-table th {
    position: relative;
    vertical-align: bottom;
    text-overflow: ellipsis;
    font-size: 14px;
    font-weight: bold;
    line-height: 24px;
    letter-spacing: 0;
    height: 48px;
    font-size: 12px;
    color: rgba(0, 0, 0, 0.54);
    padding-bottom: 8px;
    box-sizing: border-box; }
    .mdl-data-table th .mdl-data-table__select {
      position: absolute;
      bottom: 8px;
      left: 24px; }

.mdl-data-table__select {
  width: 16px; }

.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {
  text-align: left; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-mega-footer {
  padding: 16px 40px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }

.mdl-mega-footer--top-section:after,
.mdl-mega-footer--middle-section:after,
.mdl-mega-footer--bottom-section:after,
.mdl-mega-footer__top-section:after,
.mdl-mega-footer__middle-section:after,
.mdl-mega-footer__bottom-section:after {
  content: '';
  display: block;
  clear: both; }

.mdl-mega-footer--left-section,
.mdl-mega-footer__left-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section,
.mdl-mega-footer__right-section {
  margin-bottom: 16px; }

.mdl-mega-footer--right-section a,
.mdl-mega-footer__right-section a {
  display: block;
  margin-bottom: 16px;
  color: inherit;
  text-decoration: none; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--left-section,
  .mdl-mega-footer__left-section {
    float: left; }
  .mdl-mega-footer--right-section,
  .mdl-mega-footer__right-section {
    float: right; }
  .mdl-mega-footer--right-section a,
  .mdl-mega-footer__right-section a {
    display: inline-block;
    margin-left: 16px;
    line-height: 36px;
    vertical-align: middle; } }

.mdl-mega-footer--social-btn,
.mdl-mega-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

.mdl-mega-footer--drop-down-section,
.mdl-mega-footer__drop-down-section {
  display: block;
  position: relative; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--drop-down-section,
  .mdl-mega-footer__drop-down-section {
    width: 33%; }
  .mdl-mega-footer--drop-down-section:nth-child(1),
  .mdl-mega-footer--drop-down-section:nth-child(2),
  .mdl-mega-footer__drop-down-section:nth-child(1),
  .mdl-mega-footer__drop-down-section:nth-child(2) {
    float: left; }
  .mdl-mega-footer--drop-down-section:nth-child(3),
  .mdl-mega-footer__drop-down-section:nth-child(3) {
    float: right; }
    .mdl-mega-footer--drop-down-section:nth-child(3):after,
    .mdl-mega-footer__drop-down-section:nth-child(3):after {
      clear: right; }
  .mdl-mega-footer--drop-down-section:nth-child(4),
  .mdl-mega-footer__drop-down-section:nth-child(4) {
    clear: right;
    float: right; }
  .mdl-mega-footer--middle-section:after,
  .mdl-mega-footer__middle-section:after {
    content: '';
    display: block;
    clear: both; }
  .mdl-mega-footer--bottom-section,
  .mdl-mega-footer__bottom-section {
    padding-top: 0; } }

@media screen and (min-width: 1024px) {
  .mdl-mega-footer--drop-down-section,
  .mdl-mega-footer--drop-down-section:nth-child(3),
  .mdl-mega-footer--drop-down-section:nth-child(4),
  .mdl-mega-footer__drop-down-section,
  .mdl-mega-footer__drop-down-section:nth-child(3),
  .mdl-mega-footer__drop-down-section:nth-child(4) {
    width: 24%;
    float: left; } }

.mdl-mega-footer--heading-checkbox,
.mdl-mega-footer__heading-checkbox {
  position: absolute;
  width: 100%;
  height: 55.8px;
  padding: 32px;
  margin: 0;
  margin-top: -16px;
  cursor: pointer;
  z-index: 1;
  opacity: 0; }
  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
    font-family: 'Material Icons';
    content: '\E5CE'; }

.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {
  display: none; }

.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
  font-family: 'Material Icons';
  content: '\E5CF'; }

.mdl-mega-footer--heading,
.mdl-mega-footer__heading {
  position: relative;
  width: 100%;
  padding-right: 39.8px;
  margin-bottom: 16px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 23.8px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  color: rgb(224,224,224); }

.mdl-mega-footer--heading:after,
.mdl-mega-footer__heading:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  display: block;
  width: 23.8px;
  height: 23.8px;
  background-size: cover; }

.mdl-mega-footer--link-list,
.mdl-mega-footer__link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-bottom: 32px; }
  .mdl-mega-footer--link-list:after,
  .mdl-mega-footer__link-list:after {
    clear: both;
    display: block;
    content: ''; }

.mdl-mega-footer--link-list li,
.mdl-mega-footer__link-list li {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  line-height: 20px; }

.mdl-mega-footer--link-list a,
.mdl-mega-footer__link-list a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap; }

@media screen and (min-width: 760px) {
  .mdl-mega-footer--heading-checkbox,
  .mdl-mega-footer__heading-checkbox {
    display: none; }
    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,
    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,
    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,
    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {
      background-image: none; }
  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,
  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,
  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,
  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {
    display: block; }
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,
  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,
  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {
    content: ''; } }

.mdl-mega-footer--bottom-section,
.mdl-mega-footer__bottom-section {
  padding-top: 16px;
  margin-bottom: 16px; }

.mdl-logo {
  margin-bottom: 16px;
  color: white; }

.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,
.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {
  float: left;
  margin-bottom: 0;
  margin-right: 16px; }

@media screen and (min-width: 760px) {
  .mdl-logo {
    float: left;
    margin-bottom: 0;
    margin-right: 16px; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-mini-footer {
  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  padding: 32px 16px;
  color: rgb(158,158,158);
  background-color: rgb(66,66,66); }
  .mdl-mini-footer:after {
    content: '';
    display: block; }
  .mdl-mini-footer .mdl-logo {
    line-height: 36px; }

.mdl-mini-footer--link-list,
.mdl-mini-footer__link-list {
  display: flex;
  flex-flow: row nowrap;
  list-style: none;
  margin: 0;
  padding: 0; }
  .mdl-mini-footer--link-list li,
  .mdl-mini-footer__link-list li {
    margin-bottom: 0;
    margin-right: 16px; }
    @media screen and (min-width: 760px) {
      .mdl-mini-footer--link-list li,
      .mdl-mini-footer__link-list li {
        line-height: 36px; } }
  .mdl-mini-footer--link-list a,
  .mdl-mini-footer__link-list a {
    color: inherit;
    text-decoration: none;
    white-space: nowrap; }

.mdl-mini-footer--left-section,
.mdl-mini-footer__left-section {
  display: inline-block;
  order: 0; }

.mdl-mini-footer--right-section,
.mdl-mini-footer__right-section {
  display: inline-block;
  order: 1; }

.mdl-mini-footer--social-btn,
.mdl-mini-footer__social-btn {
  width: 36px;
  height: 36px;
  padding: 0;
  margin: 0;
  background-color: rgb(158,158,158);
  border: none; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-icon-toggle {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  height: 32px;
  margin: 0;
  padding: 0; }

.mdl-icon-toggle__input {
  line-height: 32px; }
  .mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-icon-toggle__label {
  display: inline-block;
  position: relative;
  cursor: pointer;
  height: 32px;
  width: 32px;
  min-width: 32px;
  color: rgb(97,97,97);
  border-radius: 50%;
  padding: 0;
  margin-left: 0;
  margin-right: 0;
  text-align: center;
  background-color: transparent;
  will-change: background-color;
  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-icon-toggle__label.material-icons {
    line-height: 32px;
    font-size: 24px; }
  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: rgb(63,81,181); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto;
    transition: none; }
  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
    background-color: rgba(0,0,0, 0.12); }
  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
    background-color: rgba(63,81,181, 0.26); }

.mdl-icon-toggle__ripple-container {
  position: absolute;
  z-index: 2;
  top: -2px;
  left: -2px;
  box-sizing: border-box;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: rgb(97,97,97); }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {
    cursor: auto; }
  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-menu__container {
  display: block;
  margin: 0;
  padding: 0;
  border: none;
  position: absolute;
  overflow: visible;
  height: 0;
  width: 0;
  visibility: hidden;
  z-index: -1; }
  .mdl-menu__container.is-visible, .mdl-menu__container.is-animating {
    z-index: 999;
    visibility: visible; }

.mdl-menu__outline {
  display: block;
  background: rgb(255,255,255);
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 2px;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  opacity: 0;
  transform: scale(0);
  transform-origin: 0 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  will-change: transform;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu__outline {
    opacity: 1;
    transform: scale(1);
    z-index: 999; }
  .mdl-menu__outline.mdl-menu--bottom-right {
    transform-origin: 100% 0; }
  .mdl-menu__outline.mdl-menu--top-left {
    transform-origin: 0 100%; }
  .mdl-menu__outline.mdl-menu--top-right {
    transform-origin: 100% 100%; }

.mdl-menu {
  position: absolute;
  list-style: none;
  top: 0;
  left: 0;
  height: auto;
  width: auto;
  min-width: 124px;
  padding: 8px 0;
  margin: 0;
  opacity: 0;
  clip: rect(0 0 0 0);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu {
    opacity: 1;
    z-index: 999; }
  .mdl-menu.is-animating {
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-menu.mdl-menu--bottom-right {
    left: auto;
    right: 0; }
  .mdl-menu.mdl-menu--top-left {
    top: auto;
    bottom: 0; }
  .mdl-menu.mdl-menu--top-right {
    top: auto;
    left: auto;
    bottom: 0;
    right: 0; }
  .mdl-menu.mdl-menu--unaligned {
    top: auto;
    left: auto; }

.mdl-menu__item {
  display: block;
  border: none;
  color: rgba(0,0,0, 0.87);
  background-color: transparent;
  text-align: left;
  margin: 0;
  padding: 0 16px;
  outline-color: rgb(189,189,189);
  position: relative;
  overflow: hidden;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  text-decoration: none;
  cursor: pointer;
  height: 48px;
  line-height: 48px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none; }
  .mdl-menu__container.is-visible .mdl-menu__item {
    opacity: 1; }
  .mdl-menu__item::-moz-focus-inner {
    border: 0; }
  .mdl-menu__item[disabled] {
    color: rgb(189,189,189);
    background-color: transparent;
    cursor: auto; }
    .mdl-menu__item[disabled]:hover {
      background-color: transparent; }
    .mdl-menu__item[disabled]:focus {
      background-color: transparent; }
    .mdl-menu__item[disabled] .mdl-ripple {
      background: transparent; }
  .mdl-menu__item:hover {
    background-color: rgb(238,238,238); }
  .mdl-menu__item:focus {
    outline: none;
    background-color: rgb(238,238,238); }
  .mdl-menu__item:active {
    background-color: rgb(224,224,224); }

.mdl-menu__item--ripple-container {
  display: block;
  height: 100%;
  left: 0px;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
  overflow: hidden; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-progress {
  display: block;
  position: relative;
  height: 4px;
  width: 500px; }

.mdl-progress > .bar {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0%;
  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); }

.mdl-progress > .progressbar {
  background-color: rgb(63,81,181);
  z-index: 1;
  left: 0; }

.mdl-progress > .bufferbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
  z-index: 0;
  left: 0; }

.mdl-progress > .auxbar {
  right: 0; }

@supports (-webkit-appearance: none) {
  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {
    background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));
    -webkit-mask: url("/images/buffer.svg?embed");
            mask: url("/images/buffer.svg?embed"); } }

.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {
  background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); }

.mdl-progress.mdl-progress__indeterminate > .bar1 {
  background-color: rgb(63,81,181);
  animation-name: indeterminate1;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

.mdl-progress.mdl-progress__indeterminate > .bar3 {
  background-image: none;
  background-color: rgb(63,81,181);
  animation-name: indeterminate2;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-timing-function: linear; }

@keyframes indeterminate1 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 25%;
    width: 75%; }
  75% {
    left: 100%;
    width: 0%; } }

@keyframes indeterminate2 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 0%;
    width: 0%; }
  75% {
    left: 0%;
    width: 25%; }
  100% {
    left: 100%;
    width: 0%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-navigation {
  display: flex;
  flex-wrap: nowrap;
  box-sizing: border-box; }

.mdl-navigation__link {
  color: rgb(66,66,66);
  text-decoration: none;
  font-weight: 500;
  font-size: 13px;
  margin: 0; }

.mdl-layout {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  -webkit-overflow-scrolling: touch; }

.mdl-layout.is-small-screen .mdl-layout--large-screen-only {
  display: none; }

.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {
  display: none; }

.mdl-layout__container {
  position: absolute;
  width: 100%;
  height: 100%; }

.mdl-layout__title,
.mdl-layout-title {
  display: block;
  position: relative;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 400;
  box-sizing: border-box; }

.mdl-layout-spacer {
  flex-grow: 1; }

.mdl-layout__drawer {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 240px;
  height: 100%;
  max-height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  border-right: 1px solid rgb(224,224,224);
  background: rgb(250,250,250);
  transform: translateX(-250px);
  transform-style: preserve-3d;
  will-change: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  color: rgb(66,66,66);
  overflow: visible;
  overflow-y: auto;
  z-index: 5; }
  .mdl-layout__drawer.is-visible {
    transform: translateX(0); }
    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {
      overflow: hidden; }
  .mdl-layout__drawer > * {
    flex-shrink: 0; }
  .mdl-layout__drawer > .mdl-layout__title,
  .mdl-layout__drawer > .mdl-layout-title {
    line-height: 64px;
    padding-left: 40px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__drawer > .mdl-layout__title,
      .mdl-layout__drawer > .mdl-layout-title {
        line-height: 56px;
        padding-left: 16px; } }
  .mdl-layout__drawer .mdl-navigation {
    flex-direction: column;
    align-items: stretch;
    padding-top: 16px; }
    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
      display: block;
      flex-shrink: 0;
      padding: 16px 40px;
      margin: 0;
      color: #757575; }
      @media screen and (max-width: 1024px) {
        .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
          padding: 16px 16px; } }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {
        background-color: rgb(224,224,224); }
      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {
        background-color: rgb(0,0,0);
        color: rgb(224,224,224); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__drawer {
      transform: translateX(0); } }

.mdl-layout__drawer-button {
  display: block;
  position: absolute;
  height: 48px;
  width: 48px;
  border: 0;
  flex-shrink: 0;
  overflow: hidden;
  text-align: center;
  cursor: pointer;
  font-size: 26px;
  line-height: 50px;
  font-family: Helvetica, Arial, sans-serif;
  margin: 10px 12px;
  top: 0;
  left: 0;
  color: rgb(255,255,255);
  z-index: 4; }
  .mdl-layout__header .mdl-layout__drawer-button {
    position: absolute;
    color: rgb(255,255,255);
    background-color: inherit; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header .mdl-layout__drawer-button {
        margin: 4px; } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__drawer-button {
      margin: 4px;
      color: rgba(0, 0, 0, 0.5); } }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__drawer-button {
      display: none; } }

.mdl-layout__header {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  box-sizing: border-box;
  flex-shrink: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  min-height: 64px;
  max-height: 1000px;
  z-index: 3;
  background-color: rgb(63,81,181);
  color: rgb(255,255,255);
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: max-height, box-shadow; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header {
      min-height: 56px; } }
  .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {
    margin-left: 240px;
    width: calc(100% - 240px); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {
      padding-left: 40px; } }
  .mdl-layout__header > .mdl-layout-icon {
    position: absolute;
    left: 40px;
    top: 16px;
    height: 32px;
    width: 32px;
    overflow: hidden;
    z-index: 3;
    display: block; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header > .mdl-layout-icon {
        left: 16px;
        top: 12px; } }
  .mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {
    display: none; }
  .mdl-layout__header.is-compact {
    max-height: 64px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header.is-compact {
        max-height: 56px; } }
  .mdl-layout__header.is-compact.has-tabs {
    height: 112px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header.is-compact.has-tabs {
        min-height: 104px; } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header {
      display: none; }
    .mdl-layout--fixed-header > .mdl-layout__header {
      display: flex; } }

.mdl-layout__header--transparent.mdl-layout__header--transparent {
  background-color: transparent;
  box-shadow: none; }

.mdl-layout__header--seamed {
  box-shadow: none; }

.mdl-layout__header--scroll {
  box-shadow: none; }

.mdl-layout__header--waterfall {
  box-shadow: none;
  overflow: hidden; }
  .mdl-layout__header--waterfall.is-casting-shadow {
    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-layout__header-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  align-self: stretch;
  align-items: center;
  height: 64px;
  margin: 0;
  padding: 0 40px 0 80px; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header-row {
      height: 56px;
      padding: 0 16px 0 72px; } }
  .mdl-layout__header-row > * {
    flex-shrink: 0; }
  .mdl-layout__header--scroll .mdl-layout__header-row {
    width: 100%; }
  .mdl-layout__header-row .mdl-navigation {
    margin: 0;
    padding: 0;
    height: 64px;
    flex-direction: row;
    align-items: center; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header-row .mdl-navigation {
        height: 56px; } }
  .mdl-layout__header-row .mdl-navigation__link {
    display: block;
    color: rgb(255,255,255);
    line-height: 64px;
    padding: 0 24px; }
    @media screen and (max-width: 1024px) {
      .mdl-layout__header-row .mdl-navigation__link {
        line-height: 56px;
        padding: 0 16px; } }

.mdl-layout__obfuscator {
  background-color: transparent;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 4;
  visibility: hidden;
  transition-property: background-color;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-layout__obfuscator.is-visible {
    background-color: rgba(0, 0, 0, 0.5);
    visibility: visible; }

.mdl-layout__content {
  -ms-flex: 0 1 auto;
  display: inline-block;
  overflow-y: auto;
  overflow-x: hidden;
  flex-grow: 1;
  z-index: 1;
  -webkit-overflow-scrolling: touch; }
  .mdl-layout--fixed-drawer > .mdl-layout__content {
    margin-left: 240px; }
  .mdl-layout__container.has-scrolling-header .mdl-layout__content {
    overflow: visible; }
  @media screen and (max-width: 1024px) {
    .mdl-layout--fixed-drawer > .mdl-layout__content {
      margin-left: 0; }
    .mdl-layout__container.has-scrolling-header .mdl-layout__content {
      overflow-y: auto;
      overflow-x: hidden; } }

.mdl-layout__tab-bar {
  height: 96px;
  margin: 0;
  width: calc(100% - 112px);
  padding: 0 0 0 56px;
  display: flex;
  background-color: rgb(63,81,181);
  overflow-y: hidden;
  overflow-x: scroll; }
  .mdl-layout__tab-bar::-webkit-scrollbar {
    display: none; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar {
      width: calc(100% - 60px);
      padding: 0 0 0 60px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar {
    padding: 0;
    overflow: hidden;
    width: 100%; }

.mdl-layout__tab-bar-container {
  position: relative;
  height: 48px;
  width: 100%;
  border: none;
  margin: 0;
  z-index: 2;
  flex-grow: 0;
  flex-shrink: 0;
  overflow: hidden; }
  .mdl-layout__container > .mdl-layout__tab-bar-container {
    position: absolute;
    top: 0;
    left: 0; }

.mdl-layout__tab-bar-button {
  display: inline-block;
  position: absolute;
  top: 0;
  height: 48px;
  width: 56px;
  z-index: 4;
  text-align: center;
  background-color: rgb(63,81,181);
  color: transparent;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar-button {
      display: none;
      width: 60px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {
    display: none; }
  .mdl-layout__tab-bar-button .material-icons {
    line-height: 48px; }
  .mdl-layout__tab-bar-button.is-active {
    color: rgb(255,255,255); }

.mdl-layout__tab-bar-left-button {
  left: 0; }

.mdl-layout__tab-bar-right-button {
  right: 0; }

.mdl-layout__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  flex-grow: 0;
  flex-shrink: 0;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(255,255,255, 0.6);
  overflow: hidden; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab {
      padding: 0 12px 0 12px; } }
  .mdl-layout--fixed-tabs .mdl-layout__tab {
    float: none;
    flex-grow: 1;
    padding: 0; }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active {
    color: rgb(255,255,255); }
  .mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0;
    left: 0;
    position: absolute;
    background: rgb(255,64,129);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-layout__tab .mdl-layout__tab-ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;
    overflow: hidden; }
    .mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {
      background-color: rgb(255,255,255); }

.mdl-layout__tab-panel {
  display: block; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel {
    display: none; }
  .mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {
    display: block; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-radio {
  position: relative;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  box-sizing: border-box;
  margin: 0;
  padding-left: 0; }
  .mdl-radio.is-upgraded {
    padding-left: 24px; }

.mdl-radio__button {
  line-height: 24px; }
  .mdl-radio.is-upgraded .mdl-radio__button {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-radio__outer-circle {
  position: absolute;
  top: 4px;
  left: 0;
  display: inline-block;
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
  border: 2px solid rgba(0,0,0, 0.54);
  border-radius: 50%;
  z-index: 2; }
  .mdl-radio.is-checked .mdl-radio__outer-circle {
    border: 2px solid rgb(63,81,181); }
  .mdl-radio.is-disabled .mdl-radio__outer-circle {
    border: 2px solid rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__inner-circle {
  position: absolute;
  z-index: 1;
  margin: 0;
  top: 8px;
  left: 4px;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  cursor: pointer;
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: transform;
  transform: scale3d(0, 0, 0);
  border-radius: 50%;
  background: rgb(63,81,181); }
  .mdl-radio.is-checked .mdl-radio__inner-circle {
    transform: scale3d(1, 1, 1); }
  .mdl-radio.is-disabled .mdl-radio__inner-circle {
    background: rgba(0,0,0, 0.26);
    cursor: auto; }
  .mdl-radio.is-focused .mdl-radio__inner-circle {
    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); }

.mdl-radio__label {
  cursor: pointer; }
  .mdl-radio.is-disabled .mdl-radio__label {
    color: rgba(0,0,0, 0.26);
    cursor: auto; }

.mdl-radio__ripple-container {
  position: absolute;
  z-index: 2;
  top: -9px;
  left: -13px;
  box-sizing: border-box;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }
  .mdl-radio__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-radio.is-disabled .mdl-radio__ripple-container {
    cursor: auto; }
  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
    background: transparent; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {
  -ms-appearance: none;
  height: 32px;
  margin: 0; }

.mdl-slider {
  width: calc(100% - 40px);
  margin: 0 20px; }
  .mdl-slider.is-upgraded {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 2px;
    background: transparent;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    outline: 0;
    padding: 0;
    color: rgb(63,81,181);
    align-self: center;
    z-index: 1;
    cursor: pointer;
    /**************************** Tracks ****************************/
    /**************************** Thumbs ****************************/
    /**************************** 0-value ****************************/
    /**************************** Disabled ****************************/ }
    .mdl-slider.is-upgraded::-moz-focus-outer {
      border: 0; }
    .mdl-slider.is-upgraded::-ms-tooltip {
      display: none; }
    .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
      background: transparent; }
    .mdl-slider.is-upgraded::-moz-range-track {
      background: transparent;
      border: none; }
    .mdl-slider.is-upgraded::-ms-track {
      background: none;
      color: transparent;
      height: 2px;
      width: 100%;
      border: none; }
    .mdl-slider.is-upgraded::-ms-fill-lower {
      padding: 0;
      background: linear-gradient(to right, transparent, transparent 16px, rgb(63,81,181) 16px, rgb(63,81,181) 0); }
    .mdl-slider.is-upgraded::-ms-fill-upper {
      padding: 0;
      background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded::-webkit-slider-thumb {
      -webkit-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background: rgb(63,81,181);
      border: none;
      -webkit-transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded::-moz-range-thumb {
      -moz-appearance: none;
      width: 12px;
      height: 12px;
      box-sizing: border-box;
      border-radius: 50%;
      background-image: none;
      background: rgb(63,81,181);
      border: none; }
    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }
    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded:active::-moz-range-thumb {
      background-image: none;
      background: rgb(63,81,181);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded::-ms-thumb {
      width: 32px;
      height: 32px;
      border: none;
      border-radius: 50%;
      background: rgb(63,81,181);
      transform: scale(0.375);
      -ms-transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded:active::-ms-thumb {
      background: rgb(63,81,181);
      transform: scale(0.5625); }
    .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
      border: 2px solid rgba(0,0,0, 0.26);
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);
      background: rgba(0,0,0, 0.12); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
      border: 1.6px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 9px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
      border: 1.5px solid rgba(0,0,0, 0.26);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
      background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
      transform: scale(0.5625);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
      background: transparent; }
    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {
      margin-left: 9px; }
    .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
      transform: scale(0.667);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-lower {
      background-color: rgba(0,0,0, 0.26);
      left: -6px; }
    .mdl-slider.is-upgraded:disabled +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
      border: 3px solid rgba(0,0,0, 0.26);
      background: transparent;
      transform: scale(0.667); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active +
.mdl-slider__background-flex > .mdl-slider__background-upper {
      left: 6px; }
    .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb {
      transform: scale(0.25);
      background: rgba(0,0,0, 0.26); }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
      transform: scale(0.25);
      background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
      margin-right: 6px;
      background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0); }
    .mdl-slider.is-upgraded:disabled::-ms-fill-upper {
      margin-left: 6px; }
    .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {
      margin-left: 6px; }

.mdl-slider__ie-container {
  height: 18px;
  overflow: visible;
  border: none;
  margin: none;
  padding: none; }

.mdl-slider__container {
  height: 18px;
  position: relative;
  background: none;
  display: flex;
  flex-direction: row; }

.mdl-slider__background-flex {
  background: transparent;
  position: absolute;
  height: 2px;
  width: calc(100% - 52px);
  top: 50%;
  left: 0;
  margin: 0 26px;
  display: flex;
  overflow: hidden;
  border: 0;
  padding: 0;
  transform: translate(0, -1px); }

.mdl-slider__background-lower {
  background: rgb(63,81,181);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0; }

.mdl-slider__background-upper {
  background: rgba(0,0,0, 0.26);
  flex: 0;
  position: relative;
  border: 0;
  padding: 0;
  transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-spinner {
  display: inline-block;
  position: relative;
  width: 28px;
  height: 28px; }
  .mdl-spinner:not(.is-upgraded).is-active:after {
    content: "Loading..."; }
  .mdl-spinner.is-upgraded.is-active {
    animation: mdl-spinner__container-rotate 1568.23529ms linear infinite; }

@keyframes mdl-spinner__container-rotate {
  to {
    transform: rotate(360deg); } }

.mdl-spinner__layer {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0; }

.mdl-spinner__layer-1 {
  border-color: rgb(66,165,245); }
  .mdl-spinner--single-color .mdl-spinner__layer-1 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-1 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-2 {
  border-color: rgb(244,67,54); }
  .mdl-spinner--single-color .mdl-spinner__layer-2 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-2 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-3 {
  border-color: rgb(253,216,53); }
  .mdl-spinner--single-color .mdl-spinner__layer-3 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-3 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

.mdl-spinner__layer-4 {
  border-color: rgb(76,175,80); }
  .mdl-spinner--single-color .mdl-spinner__layer-4 {
    border-color: rgb(63,81,181); }
  .mdl-spinner.is-active .mdl-spinner__layer-4 {
    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    transform: rotate(135deg); }
  25% {
    transform: rotate(270deg); }
  37.5% {
    transform: rotate(405deg); }
  50% {
    transform: rotate(540deg); }
  62.5% {
    transform: rotate(675deg); }
  75% {
    transform: rotate(810deg); }
  87.5% {
    transform: rotate(945deg); }
  to {
    transform: rotate(1080deg); } }

/**
* HACK: Even though the intention is to have the current .mdl-spinner__layer-N
* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome
* to do proper subpixel rendering for the elements being animated. This is
* especially visible in Chrome 39 on Ubuntu 14.04. See:
*
* - https://github.com/Polymer/paper-spinner/issues/9
* - https://code.google.com/p/chromium/issues/detail?id=436255
*/
@keyframes mdl-spinner__layer-1-fade-in-out {
  from {
    opacity: 0.99; }
  25% {
    opacity: 0.99; }
  26% {
    opacity: 0; }
  89% {
    opacity: 0; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0.99; } }

@keyframes mdl-spinner__layer-2-fade-in-out {
  from {
    opacity: 0; }
  15% {
    opacity: 0; }
  25% {
    opacity: 0.99; }
  50% {
    opacity: 0.99; }
  51% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-3-fade-in-out {
  from {
    opacity: 0; }
  40% {
    opacity: 0; }
  50% {
    opacity: 0.99; }
  75% {
    opacity: 0.99; }
  76% {
    opacity: 0; } }

@keyframes mdl-spinner__layer-4-fade-in-out {
  from {
    opacity: 0; }
  65% {
    opacity: 0; }
  75% {
    opacity: 0.99; }
  90% {
    opacity: 0.99; }
  100% {
    opacity: 0; } }

/**
* Patch the gap that appear between the two adjacent
* div.mdl-spinner__circle-clipper while the spinner is rotating
* (appears on Chrome 38, Safari 7.1, and IE 11).
*
* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's
* opacity is 0.99, but still does on Safari and IE.
*/
.mdl-spinner__gap-patch {
  position: absolute;
  box-sizing: border-box;
  top: 0;
  left: 45%;
  width: 10%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__gap-patch .mdl-spinner__circle {
    width: 1000%;
    left: -450%; }

.mdl-spinner__circle-clipper {
  display: inline-block;
  position: relative;
  width: 50%;
  height: 100%;
  overflow: hidden;
  border-color: inherit; }
  .mdl-spinner__circle-clipper .mdl-spinner__circle {
    width: 200%; }

.mdl-spinner__circle {
  box-sizing: border-box;
  height: 100%;
  border-width: 3px;
  border-style: solid;
  border-color: inherit;
  border-bottom-color: transparent !important;
  border-radius: 50%;
  animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
  .mdl-spinner__left .mdl-spinner__circle {
    border-right-color: transparent !important;
    transform: rotate(129deg); }
    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
      animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }
  .mdl-spinner__right .mdl-spinner__circle {
    left: -100%;
    border-left-color: transparent !important;
    transform: rotate(-129deg); }
    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
      animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@keyframes mdl-spinner__left-spin {
  from {
    transform: rotate(130deg); }
  50% {
    transform: rotate(-5deg); }
  to {
    transform: rotate(130deg); } }

@keyframes mdl-spinner__right-spin {
  from {
    transform: rotate(-130deg); }
  50% {
    transform: rotate(5deg); }
  to {
    transform: rotate(-130deg); } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-switch {
  position: relative;
  z-index: 1;
  vertical-align: middle;
  display: inline-block;
  box-sizing: border-box;
  width: 100%;
  height: 24px;
  margin: 0;
  padding: 0;
  overflow: visible;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none; }
  .mdl-switch.is-upgraded {
    padding-left: 28px; }

.mdl-switch__input {
  line-height: 24px; }
  .mdl-switch.is-upgraded .mdl-switch__input {
    position: absolute;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;
    border: none; }

.mdl-switch__track {
  background: rgba(0,0,0, 0.26);
  position: absolute;
  left: 0;
  top: 5px;
  height: 14px;
  width: 36px;
  border-radius: 14px;
  cursor: pointer; }
  .mdl-switch.is-checked .mdl-switch__track {
    background: rgba(63,81,181, 0.5); }
  .mdl-switch.is-disabled .mdl-switch__track {
    background: rgba(0,0,0, 0.12);
    cursor: auto; }

.mdl-switch__thumb {
  background: rgb(250,250,250);
  position: absolute;
  left: 0;
  top: 2px;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
  transition-duration: 0.28s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: left; }
  .mdl-switch.is-checked .mdl-switch__thumb {
    background: rgb(63,81,181);
    left: 16px;
    box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }
  .mdl-switch.is-disabled .mdl-switch__thumb {
    background: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__focus-helper {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-4px, -4px);
  display: inline-block;
  box-sizing: border-box;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: transparent; }
  .mdl-switch.is-focused .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);
    background-color: rgba(0, 0, 0, 0.1); }
  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
    box-shadow: 0 0 0px 20px rgba(63,81,181, 0.26);
    background-color: rgba(63,81,181, 0.26); }

.mdl-switch__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  left: 24px; }
  .mdl-switch.is-disabled .mdl-switch__label {
    color: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__ripple-container {
  position: absolute;
  z-index: 2;
  top: -12px;
  left: -14px;
  box-sizing: border-box;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  cursor: pointer;
  overflow: hidden;
  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);
  transition-duration: 0.40s;
  transition-timing-function: step-end;
  transition-property: left; }
  .mdl-switch__ripple-container .mdl-ripple {
    background: rgb(63,81,181); }
  .mdl-switch.is-disabled .mdl-switch__ripple-container {
    cursor: auto; }
  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: transparent; }
  .mdl-switch.is-checked .mdl-switch__ripple-container {
    cursor: auto;
    left: 2px; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-tabs {
  display: block;
  width: 100%; }

.mdl-tabs__tab-bar {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-content: space-between;
  align-items: flex-start;
  height: 48px;
  padding: 0 0 0 0;
  margin: 0;
  border-bottom: 1px solid rgb(224,224,224); }

.mdl-tabs__tab {
  margin: 0;
  border: none;
  padding: 0 24px 0 24px;
  float: left;
  position: relative;
  display: block;
  color: red;
  text-decoration: none;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-weight: 500;
  font-size: 14px;
  text-transform: uppercase;
  color: rgba(0,0,0, 0.54);
  overflow: hidden; }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {
    color: rgba(0,0,0, 0.87); }
  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
    height: 2px;
    width: 100%;
    display: block;
    content: " ";
    bottom: 0px;
    left: 0px;
    position: absolute;
    background: rgb(63,81,181);
    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }
  .mdl-tabs__tab .mdl-tabs__ripple-container {
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0px;
    top: 0px;
    z-index: 1;
    overflow: hidden; }
    .mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {
      background: rgb(63,81,181); }

.mdl-tabs__panel {
  display: block; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel {
    display: none; }
  .mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {
    display: block; }

@keyframes border-expand {
  0% {
    opacity: 0;
    width: 0; }
  100% {
    opacity: 1;
    width: 100%; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-textfield {
  position: relative;
  font-size: 16px;
  display: inline-block;
  box-sizing: border-box;
  width: 300px;
  max-width: 100%;
  margin: 0;
  padding: 20px 0; }
  .mdl-textfield .mdl-button {
    position: absolute;
    bottom: 20px; }

.mdl-textfield--align-right {
  text-align: right; }

.mdl-textfield--full-width {
  width: 100%; }

.mdl-textfield--expandable {
  min-width: 32px;
  width: auto;
  min-height: 32px; }

.mdl-textfield__input {
  border: none;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
  display: block;
  font-size: 16px;
  margin: 0;
  padding: 4px 0;
  width: 100%;
  background: none;
  text-align: left;
  color: inherit; }
  .mdl-textfield.is-focused .mdl-textfield__input {
    outline: none; }
  .mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: rgb(222, 50, 38);
    box-shadow: none; }
  .mdl-textfield.is-disabled .mdl-textfield__input {
    background-color: transparent;
    border-bottom: 1px dotted rgba(0,0,0, 0.12);
    color: rgba(0,0,0, 0.26); }

.mdl-textfield textarea.mdl-textfield__input {
  display: block; }

.mdl-textfield__label {
  bottom: 0;
  color: rgba(0,0,0, 0.26);
  font-size: 16px;
  left: 0;
  right: 0;
  pointer-events: none;
  position: absolute;
  display: block;
  top: 24px;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-align: left; }
  .mdl-textfield.is-dirty .mdl-textfield__label {
    visibility: hidden; }
  .mdl-textfield--floating-label .mdl-textfield__label {
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }
  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
    color: rgba(0,0,0, 0.26); }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label {
    color: rgb(63,81,181);
    font-size: 12px;
    top: 4px;
    visibility: visible; }
  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,
  .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label {
    top: -16px; }
  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: rgb(222, 50, 38);
    font-size: 12px; }
  .mdl-textfield__label:after {
    background-color: rgb(63,81,181);
    bottom: 20px;
    content: '';
    height: 2px;
    left: 45%;
    position: absolute;
    transition-duration: 0.2s;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    visibility: hidden;
    width: 10px; }
  .mdl-textfield.is-focused .mdl-textfield__label:after {
    left: 0;
    visibility: visible;
    width: 100%; }
  .mdl-textfield.is-invalid .mdl-textfield__label:after {
    background-color: rgb(222, 50, 38); }

.mdl-textfield__error {
  color: rgb(222, 50, 38);
  position: absolute;
  font-size: 12px;
  margin-top: 3px;
  visibility: hidden;
  display: block; }
  .mdl-textfield.is-invalid .mdl-textfield__error {
    visibility: visible; }

.mdl-textfield__expandable-holder {
  display: inline-block;
  position: relative;
  margin-left: 32px;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  display: inline-block;
  max-width: 0.1px; }
  .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder {
    max-width: 600px; }
  .mdl-textfield__expandable-holder .mdl-textfield__label:after {
    bottom: 0; }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-tooltip {
  transform: scale(0);
  transform-origin: top center;
  will-change: transform;
  z-index: 999;
  background: rgba(97,97,97, 0.9);
  border-radius: 2px;
  color: rgb(255,255,255);
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  line-height: 14px;
  max-width: 170px;
  position: fixed;
  top: -500px;
  left: -500px;
  padding: 8px;
  text-align: center; }

.mdl-tooltip.is-active {
  animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }

.mdl-tooltip--large {
  line-height: 14px;
  font-size: 14px;
  padding: 16px; }

@keyframes pulse {
  0% {
    transform: scale(0);
    opacity: 0; }
  50% {
    transform: scale(0.99); }
  100% {
    transform: scale(1);
    opacity: 1;
    visibility: visible; } }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* Typography */
/* Shadows */
/* Animations */
.mdl-shadow--2dp {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--3dp {
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }

.mdl-shadow--4dp {
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--6dp {
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }

.mdl-shadow--8dp {
  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); }

.mdl-shadow--16dp {
  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2); }

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
* NOTE: Some rules here are applied using duplicate selectors.
* This is on purpose to increase their specificity when applied.
* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`
*/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*------------------------------------*\
    $CONTENTS
\*------------------------------------*/
/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 */
/* ==========  TYPOGRAPHY  ========== */
/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/
/* ==========  COLORS  ========== */
/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  Color Palettes  ========== */
/* colors.scss */
/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* ==========  IMAGES  ========== */
/* ==========  Color & Themes  ========== */
/* ==========  Typography  ========== */
/* ==========  Components  ========== */
/* ==========  Standard Buttons  ========== */
/* ==========  Icon Toggles  ========== */
/* ==========  Radio Buttons  ========== */
/* ==========  Ripple effect  ========== */
/* ==========  Layout  ========== */
/* ==========  Content Tabs  ========== */
/* ==========  Checkboxes  ========== */
/* ==========  Switches  ========== */
/* ==========  Spinner  ========== */
/* ==========  Text fields  ========== */
/* ==========  Card  ========== */
/* ==========  Sliders ========== */
/* ========== Progress ========== */
/* ==========  List ========== */
/* ==========  Item ========== */
/* ==========  Dropdown menu ========== */
/* ==========  Tooltips  ========== */
/* ==========  Footer  ========== */
/* TEXTFIELD */
/* SWITCH */
/* SPINNER */
/* RADIO */
/* MENU */
/* LIST */
/* LAYOUT */
/* ICON TOGGLE */
/* FOOTER */
/*mega-footer*/
/*mini-footer*/
/* CHECKBOX */
/* CARD */
/* Card dimensions */
/* Cover image */
/* BUTTON */
/**
 *
 * Dimensions
 *
 */
/* ANIMATION */
/* PROGRESS */
/* BADGE */
/* SHADOWS */
/* GRID */
/* DATA TABLE */
/* TOOLTIP */
.mdl-grid {
  display: flex;
  flex-flow: row wrap;
  margin: 0 auto 0 auto;
  align-items: stretch; }
  .mdl-grid.mdl-grid--no-spacing {
    padding: 0; }

.mdl-cell {
  box-sizing: border-box; }

.mdl-cell--top {
  align-self: flex-start; }

.mdl-cell--middle {
  align-self: center; }

.mdl-cell--bottom {
  align-self: flex-end; }

.mdl-cell--stretch {
  align-self: stretch; }

.mdl-grid.mdl-grid--no-spacing > .mdl-cell {
  margin: 0; }

@media (max-width: 479px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 100%; }
  .mdl-cell--hide-phone {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-phone.mdl-cell--1-col-phone {
      width: 25%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-phone.mdl-cell--2-col-phone {
      width: 50%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-phone.mdl-cell--3-col-phone {
      width: 75%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-phone.mdl-cell--4-col-phone {
      width: 100%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-phone.mdl-cell--5-col-phone {
      width: 100%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-phone.mdl-cell--6-col-phone {
      width: 100%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-phone.mdl-cell--7-col-phone {
      width: 100%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-phone.mdl-cell--8-col-phone {
      width: 100%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-phone.mdl-cell--9-col-phone {
      width: 100%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-phone.mdl-cell--10-col-phone {
      width: 100%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-phone.mdl-cell--11-col-phone {
      width: 100%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-phone.mdl-cell--12-col-phone {
      width: 100%; } }

@media (min-width: 480px) and (max-width: 839px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 50%; }
  .mdl-cell--hide-tablet {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
    width: calc(12.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {
      width: 12.5%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {
      width: 25%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
    width: calc(37.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {
      width: 37.5%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {
      width: 50%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
    width: calc(62.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {
      width: 62.5%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {
      width: 75%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
    width: calc(87.5% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {
      width: 87.5%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {
      width: 100%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {
      width: 100%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {
      width: 100%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {
      width: 100%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {
      width: 100%; } }

@media (min-width: 840px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(33.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 33.33333%; }
  .mdl-cell--hide-desktop {
    display: none !important; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
    width: calc(8.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >
    .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
      width: 8.33333%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
    width: calc(16.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >
    .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
      width: 16.66667%; }
  .mdl-cell--3-col,
  .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
    width: calc(25% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >
    .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {
      width: 25%; }
  .mdl-cell--4-col,
  .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
    width: calc(33.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >
    .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {
      width: 33.33333%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
    width: calc(41.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >
    .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
      width: 41.66667%; }
  .mdl-cell--6-col,
  .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
    width: calc(50% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >
    .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {
      width: 50%; }
  .mdl-cell--7-col,
  .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
    width: calc(58.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >
    .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {
      width: 58.33333%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
    width: calc(66.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >
    .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
      width: 66.66667%; }
  .mdl-cell--9-col,
  .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
    width: calc(75% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >
    .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {
      width: 75%; }
  .mdl-cell--10-col,
  .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
    width: calc(83.33333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >
    .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {
      width: 83.33333%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
    width: calc(91.66667% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >
    .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
      width: 91.66667%; }
  .mdl-cell--12-col,
  .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
    width: calc(100% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >
    .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {
      width: 100%; } }

.md-fab-bottom-right {
  position: absolute;
  bottom: 20px;
  right: 20px;
  z-index: 49; }

md-card h1, md-card h2, md-card h3, md-card h4, md-card h5, md-card h6 {
  margin-top: 0;
  margin-bottom: 0; }

md-card md-toolbar {
  min-height: 56px;
  background-color: #ffffff !important;
  z-index: 0; }
  md-card md-toolbar .md-toolbar-tools {
    height: 56px;
    max-height: 56px;
    border-bottom: 1px solid #ddd;
    font-weight: 500;
    font-size: 16px; }
  md-card md-toolbar .md-toolbar-tools, md-card md-toolbar md-icon {
    color: #3d4653 !important; }

.card {
  background-color: #ffffff !important; }
  .card-icon {
    max-width: 96px; }
    .card-icon md-icon {
      float: right;
      height: 36px;
      width: 36px;
      padding: 12px;
      background-color: #646b75;
      color: #ffffff;
      border: 8px double;
      border-radius: 50%; }
  .card-info__value {
    color: #273140 !important;
    font-weight: 700; }
  .card-info__name {
    color: #3d4653 !important;
    text-transform: uppercase;
    font-weight: 500;
    font-size: 14px; }

@media (max-width: 599px) {
  .card-info {
    text-align: center; } }

.dtp > .dtp-content > .dtp-date-view > header.dtp-header {
  background-color: #273140; }

.dtp div.dtp-date,
.dtp div.dtp-time,
.dtp .dtp-actual-meridien a.selected,
.dtp .dtp-picker-time > a.dtp-select-hour.selected {
  background-color: #3d4653; }

.dtp .p10 > a,
.dtp .dtp-hand.on,
.dtp table.dtp-picker-days tr > td > a.selected,
.dtp .dtp-picker-time > a.dtp-select-minute.selected {
  background-color: #3d4653; }

.dtp div.dtp-actual-year,
.dtp div.dtp-year-btn {
  color: #bdbdbd; }

.dtp .dtp-picker-month {
  margin-top: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  background-color: #ecedee;
  color: #3d4653; }

md-input-container.md-default-theme .md-input[disabled],
md-input-container .md-input[disabled],
md-input-container.md-default-theme .md-input [disabled],
md-input-container .md-input [disabled] {
  color: rgba(0, 0, 0, 0.6); }

header {
  z-index: 60; }

@media (max-width: 599px) {
  header md-toolbar .md-button.md-icon-button {
    margin: 0; } }

md-content {
  overflow-x: hidden;
  background-color: #ecedee; }

md-select-menu md-content {
  background-color: #ffffff; }
  md-select-menu md-content md-option:hover, md-select-menu md-content md-option:focus {
    color: #3d4653 !important;
    background-color: #dfe0e3 !important; }

md-toolbar {
  background-color: #273140 !important; }

.md-content-subheader {
  padding: 4px 8px;
  background-color: #f2f2f3;
  color: #424242;
  font-weight: 400;
  font-size: 14px; }

md-checkbox.md-checked .md-icon {
  background-color: #1080f2; }
  md-checkbox.md-checked .md-icon::after {
    border-color: #ffffff; }

md-tooltip {
  font-size: 14px; }

.fab-closed-icon, .fab-open-icon {
  position: absolute;
  top: 17px;
  left: 16px;
  transition: all .3s ease-in-out;
  opacity: 1;
  transform: scale(1); }

.fab-open-icon {
  opacity: 0;
  transform: scale(0); }

.md-is-open .fab-closed-icon {
  opacity: 0;
  transform: scale(0); }

.md-is-open .fab-open-icon {
  opacity: 1;
  transform: scale(1); }

md-menu-content .md-button {
  margin: 0;
  padding: 4px 0; }
  md-menu-content .md-button:hover, md-menu-content .md-button:focus {
    color: #3d4653 !important;
    background-color: #dfe0e3 !important; }
  md-menu-content .md-button:active {
    color: #3d4653 !important;
    background-color: #c4c6cb; }

md-tabs {
  padding-right: 8px;
  padding-left: 8px;
  background-color: #ffffff;
  border-bottom: 1px solid #bdbdbd;
  border-radius: 0; }
  md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) {
    min-height: 0 !important; }
  md-tabs md-ink-bar {
    color: #1080f2 !important;
    background: #1080f2 !important; }
  md-tabs md-tab-content {
    background-color: #ecedee;
    border-top: 1px solid #bdbdbd; }
  md-tabs md-icon {
    color: #757575; }
  md-tabs .md-tab {
    color: #757575 !important; }
    md-tabs .md-tab.md-active {
      color: #1080f2 !important;
      font-weight: 700; }

@media (min-width: 600px) {
  md-tabs {
    padding-right: 24px;
    padding-left: 24px; } }

.md-tab-interval {
  background-color: #ecedee;
  border-bottom: 1px solid #bdbdbd; }
  .md-tab-interval div > * {
    margin-right: 32px; }
    .md-tab-interval div > *:last-of-type {
      margin-right: 8px; }
  .md-tab-interval #quickInterval {
    min-width: 120px; }
  .md-tab-interval #periodInterval {
    min-width: 160px; }
  .md-tab-interval .md-content-title {
    padding-bottom: 16px;
    text-transform: uppercase;
    font-weight: 700; }
  .md-tab-interval md-input-container {
    margin-bottom: 0; }
    .md-tab-interval md-input-container .md-errors-spacer {
      min-height: 8px; }
  .md-tab-interval ol, .md-tab-interval ul {
    margin-left: 0;
    padding-left: 0;
    list-style-type: none;
    text-transform: uppercase; }
    .md-tab-interval ol li, .md-tab-interval ul li {
      padding: 2px 8px;
      margin-bottom: 4px;
      color: #424242;
      font-weight: 500; }
      .md-tab-interval ol li:hover, .md-tab-interval ul li:hover {
        cursor: pointer; }
      .md-tab-interval ol li:hover, .md-tab-interval ol li:active, .md-tab-interval ol li:focus, .md-tab-interval ul li:hover, .md-tab-interval ul li:active, .md-tab-interval ul li:focus {
        color: #ffffff;
        background-color: #1080f2;
        border-radius: 2px; }

.subheader-period {
  background-color: #f2f2f3;
  border-bottom: 1px solid #bdbdbd; }
  .subheader-period .md-subheader-inner {
    padding: 0 32px 0 16px; }
  .subheader-period .subheader-title {
    color: #757575;
    font-weight: 500;
    font-size: 16px; }
  .subheader-period button:last-of-type {
    margin-right: 0; }
  .subheader-period md-input-container {
    margin-top: 4px;
    margin-bottom: 4px; }
    .subheader-period md-input-container .md-errors-spacer {
      min-height: 0; }

#seekerSummary md-pagination-wrapper {
  width: auto !important; }

#seekerComparative md-pagination-wrapper {
  width: auto !important; }

md-sidenav md-content, md-sidenav md-content .md-subheader {
  background-color: transparent; }

md-sidenav md-divider {
  margin-top: 4px;
  margin-bottom: 4px; }

md-sidenav md-list-item md-icon {
  margin: 0 8px 0 0; }

md-sidenav md-list-item .md-list-item-inner {
  margin-top: 0 !important;
  margin-bottom: 0 !important; }
  md-sidenav md-list-item .md-list-item-inner md-icon {
    margin-top: 0 !important;
    margin-bottom: 0 !important; }

md-sidenav md-list-item:active, md-sidenav md-list-item:focus, md-sidenav md-list-item:hover {
  background-color: #dfe0e3;
  color: #3d4653; }
  md-sidenav md-list-item:active md-icon, md-sidenav md-list-item:focus md-icon, md-sidenav md-list-item:hover md-icon {
    color: #3d4653 !important; }

md-sidenav .md-avatar {
  height: 64px;
  width: 64px; }
  md-sidenav .md-avatar img {
    height: 64px;
    width: 64px;
    border-radius: 50%; }

md-sidenav .toolbar-header {
  background-image: url("../../assets/images/bg-header.png");
  background-blend-mode: multiply;
  background-repeat: no-repeat; }

#sidenavMenu {
  width: 240px;
  max-width: 240px;
  height: inherit; }
  #sidenavMenu md-toolbar {
    padding: 16px;
    height: 160px;
    min-height: 160px;
    max-height: 160px; }
  #sidenavMenu md-content {
    height: inherit; }

@media (min-width: 1280px) {
  #sidenavMenu {
    z-index: 58;
    border-left: 1px solid #bdbdbd; } }

#sidenavFilter {
  width: 320px;
  max-width: 320px;
  position: fixed;
  top: 0; }
  #sidenavFilter md-tabs md-tab-content {
    background-color: #ffffff; }
  #sidenavFilter md-list-item {
    border-bottom: 1px solid #f1f2f2; }
    #sidenavFilter md-list-item:last-of-type {
      border-bottom: none; }

thead {
  text-transform: uppercase; }

.td-colored {
  max-width: 100px; }

h1,
h2,
h3,
h4,
h5,
h6 {
  color: #3d4653;
  margin: 0;
  padding: 0; }

small {
  opacity: .6; }

a {
  color: #3d4653; }
  a:focus, a:hover, a:active {
    color: #273140; }

html, body {
  height: 100%;
  width: 100%;
  font-family: "Roboto", "Helvetica", sans-serif;
  background-color: #ecedee;
  text-rendering: optimizeLegibility;
  overflow: hidden; }

.display-flex {
  display: flex; }

.no-padding {
  padding: 0; }

.no-margin {
  margin: 0; }

.padding-sm {
  padding: 8px; }
  .padding-sm__tb {
    padding-top: 8px;
    padding-bottom: 8px; }
  .padding-sm__rl {
    padding-right: 8px;
    padding-left: 8px; }

.padding-md {
  padding: 16px; }
  .padding-md__tb {
    padding-top: 16px;
    padding-bottom: 16px; }
  .padding-md__rl {
    padding-right: 16px;
    padding-left: 16px; }

.padding-lg {
  padding: 32px; }
  .padding-lg__tb {
    padding-top: 32px;
    padding-bottom: 32px; }
  .padding-lg__rl {
    padding-right: 32px;
    padding-left: 32px; }

.margin-sm {
  margin: 8px; }
  .margin-sm__tb {
    margin-top: 8px;
    margin-bottom: 8px; }
  .margin-sm__rl {
    margin-right: 8px;
    margin-left: 8px; }

.margin-md {
  margin: 16px; }
  .margin-md__tb {
    margin-top: 16px;
    margin-bottom: 16px; }
  .margin-md__rl {
    margin-right: 16px;
    margin-left: 16px; }

.margin-lg {
  margin: 32px; }
  .margin-lg__tb {
    margin-top: 32px;
    margin-bottom: 32px; }
  .margin-lg__rl {
    margin-right: 32px;
    margin-left: 32px; }

.margin-auto {
  margin-right: auto;
  margin-left: auto; }

.float__left {
  float: left; }

.float__right {
  float: right; }

.text__left {
  text-align: left; }

.text__center {
  text-align: center; }

.text__right {
  text-align: right; }

.text__lowercase {
  text-transform: lowercase; }

.text__uppercase {
  text-transform: uppercase; }

.text__capitalize {
  text-transform: capitalize; }

.text__thin {
  font-weight: 100; }

.text__light {
  font-weight: 300; }

.text__regular {
  font-weight: 400; }

.text__medium {
  font-weight: 500; }

.text__bold {
  font-weight: 700; }

.text__black {
  font-weight: 900; }

.bg__light-primary {
  background-color: #ecedee; }

.bg__light-secondary {
  background-color: #ecedee; }

.bg__dark-primary {
  background-color: #273140; }

.bg__dark-secondary {
  background-color: #ffffff; }

.ribbon {
  flex-shrink: 0;
  -ms-flex-negative: 0;
  height: 50vh;
  width: 100%;
  background-color: #cfd8dc; }

.main {
  flex-shrink: 0;
  -ms-flex-negative: 0;
  margin-top: -50vh; }

.logo {
  max-height: 36px;
  margin-right: 8px; }

.login {
  width: 400px; }

.my-chart {
  height: auto;
  display: inline-block;
  width: calc(50% - 4px);
  border-sizing: border-box; }

.container-chart {
  display: block; }

@media screen and (max-width: 960px) {
  .my-chart {
    width: 100%;
    display: block; } }

.fs-input {
  margin: 4px 0 20px 0;
  padding: 12px;
  color: #444;
  border-radius: 6px;
  border: solid 1px #ccc;
  background: white; }

.fs-label {
  color: #6751a2;
  font-size: 12px;
  font-family: Roboto; }

/**
 *  Do not remove the comment below. It's the markers used by gulp-inject to inject
 *  all your sass files automatically
 */
.f-button {
  height: 48px;
  padding: 0 32px;
  font-size: 1em;
  text-align: center;
  color: #fafafa;
  background-color: #6A489B;
  border: 3px solid #6A489B;
  border-radius: 5px;
  text-transform: uppercase;
  outline: none;
  transition: all 0.2s ease; }
  .f-button:hover, .f-button:focus {
    background-color: #7E5DAF; }
  .f-button:active {
    background-color: #8f67ca; }

f-button.f-block button {
  width: 100%; }

.f-button[disabled] {
  color: rgba(230, 230, 230, 0.79);
  background-color: rgba(151, 140, 166, 0.67);
  border: 3px solid transparent; }

.f-button-light {
  color: #999;
  border: 3px solid #D9D9D9;
  background-color: transparent; }
  .f-button-light:hover, .f-button-light:focus {
    background-color: #f0f0f0; }

.f-input {
  height: 46px;
  box-sizing: border-box;
  font-size: 12pt;
  line-height: 17px;
  color: #888888;
  background-color: #ffffff;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  padding-right: 20px;
  padding-left: 20px;
  outline: none;
  transition: all 0.2s ease;
  min-width: 0 .f-input; }
  .f-input :focus {
    border-color: #59c5d5; }
  .f-input::-webkit-input-placeholder {
    color: #c9c9c9; }

f-input.f-block .f-input {
  display: block;
  width: 100%; }

.f-input-borderless .f-input {
  border: 0px; }

.f-input-no-padding .f-input {
  padding-right: 0;
  padding-left: 0; }

.f-input-no-left-padding .f-input {
  padding-left: 0; }

.f-box {
  width: 317px;
  height: 431px;
  background-color: #FFFFFF;
  border: 1px solid #D9D9D9;
  border-radius: 5px;
  background-color: white; }

.f-separator {
  display: inline-block;
  position: relative;
  overflow: hidden;
  width: 275px;
  height: 4px; }
  .f-separator .f-separator-blue-1 {
    display: inline-block;
    position: absolute;
    left: 0;
    width: 164px;
    height: 0px;
    border-top: 4px solid #59C5D5; }
  .f-separator .f-separator-blue-2 {
    display: inline-block;
    position: absolute;
    left: 100px;
    width: 128px;
    height: 0px;
    border-top: 4px solid #398BC2; }
  .f-separator .f-separator-purple {
    display: inline-block;
    position: absolute;
    left: 200px;
    width: 122px;
    height: 0px;
    border-top: 4px solid #6A489B; }

a.md-button.md-default-theme.md-primary.md-raised, a.md-button.md-primary.md-raised, a.md-button.md-default-theme.md-primary.md-fab, a.md-button.md-primary.md-fab, .md-button.md-default-theme.md-primary.md-raised, .md-button.md-primary.md-raised, .md-button.md-default-theme.md-primary.md-fab, .md-button.md-primary.md-fab {
  color: rgba(255, 255, 255, 0.87);
  background-color: #273140 !important; }

.reset-errors ul li {
  color: #f97575; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmNzcyIsImluZGV4LnNjc3MiLCIuLi9zdHlsZS9zdHlsZXMuc2NzcyIsIi4uL3N0eWxlL2xvZ2luLXBhZ2Utc3R5bGUvbG9naW4tcGFnZS1zdHlsZS5zY3NzIiwiLi4vc3R5bGUvbW9kdWxlcy9faWNvbnMuc2NzcyIsIi4uL3N0eWxlL21vZHVsZXMvX2ZvbnQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL21hdGVyaWFsLWRlc2lnbi1saXRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9fY29sb3ItZGVmaW5pdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL19taXhpbnMuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Jlc2V0cy9fcmVzZXRzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yZXNldHMvX2g1YnAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Jlc2V0cy9fbW9iaWxlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy90eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9wYWxldHRlL19wYWxldHRlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yaXBwbGUvX3JpcHBsZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvYW5pbWF0aW9uL19hbmltYXRpb24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2JhZGdlL19iYWRnZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvYnV0dG9uL19idXR0b24uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2NhcmQvX2NhcmQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2NoZWNrYm94L19jaGVja2JveC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZGF0YS10YWJsZS9fZGF0YS10YWJsZS5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZm9vdGVyL19tZWdhX2Zvb3Rlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvZm9vdGVyL19taW5pX2Zvb3Rlci5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvaWNvbi10b2dnbGUvX2ljb24tdG9nZ2xlLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9tZW51L19tZW51LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9wcm9ncmVzcy9fcHJvZ3Jlc3Muc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2xheW91dC9fbGF5b3V0LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9yYWRpby9fcmFkaW8uc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3NsaWRlci9fc2xpZGVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9zcGlubmVyL19zcGlubmVyLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9zd2l0Y2gvX3N3aXRjaC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvdGFicy9fdGFicy5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvdGV4dGZpZWxkL190ZXh0ZmllbGQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3Rvb2x0aXAvX3Rvb2x0aXAuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL3NoYWRvdy9fc2hhZG93LnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL21hdGVyaWFsLWRlc2lnbi1saXRlL3NyYy9ncmlkL19ncmlkLnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fYnV0dG9ucy5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2NhcmQuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vc3R5bGUvbW9kdWxlcy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1jb2xvcnMvZGlzdC9jb2xvcnMuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19kYXRldGltZXBpY2tlci5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2hlYWRlci5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX2xheW91dC5zY3NzIiwiLi4vc3R5bGUvcGFydGlhbHMvX21lbnUuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19zZWVrZXIuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL19zaWRlbmF2LnNjc3MiLCIuLi9zdHlsZS9wYXJ0aWFscy9fdGFibGUuc2NzcyIsIi4uL3N0eWxlL3BhcnRpYWxzL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9zdHlsZS9sYXlvdXQvX2Jhc2Uuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi9zdHlsZS9sYXlvdXQvX2hpZ2hjaGFydF9maWxsX3BhcmVudF9pc3N1ZV9oYWNrLnNjc3MiLCJjb21wb25lbnRzL0ZCdXR0b24vRkJ1dHRvbi5zY3NzIiwiY29tcG9uZW50cy9GSW5wdXQvRklucHV0LnNjc3MiLCJjb21wb25lbnRzL0ZCb3gvRmJveC5zY3NzIiwiY29tcG9uZW50cy9GU2VwYXJhdG9yL0ZTZXBhcmF0b3Iuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUNBaEI7OztFRElFO0FFSkY7RUFDTSxvQ0FBb0MsRUFBQTs7QUFFMUM7RUFDTSxxREFBcUQsRUFBQTs7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QUFBOztBQUduRTtFQUNFLDhCQUFzRCxFQUFBOztBQUd4RDtFQUNFLHlDQUFpRSxFQUFBOztBQUtuRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLCtCQUF1RCxFQUFBOztBQUd6RDtFQUNFLDBDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF5RCxFQUFBOztBQUczRDtFQUNFLDZDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGlDQUF5RCxFQUFBOztBQUczRDtFQUNFLDRDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUt0RTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDZDQUF5RSxFQUFBOztBQUczRTtFQUNFLGlDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDRDQUF5RSxFQUFBOztBQUczRTtFQUNFLGlDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDRDQUF5RSxFQUFBOztBQUczRTtFQUNFLCtCQUE4RCxFQUFBOztBQUdoRTtFQUNFLDBDQUF5RSxFQUFBOztBQUszRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF5RCxFQUFBOztBQUczRDtFQUNFLDZDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGlDQUF5RCxFQUFBOztBQUczRDtFQUNFLDRDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUt0RTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGdDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDJDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDZDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGtDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGlDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDRDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGlDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDRDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGdDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDJDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGdDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDJDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGdDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDJDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGdDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDJDQUF1RSxFQUFBOztBQUd6RTtFQUNFLCtCQUE0RCxFQUFBOztBQUc5RDtFQUNFLDBDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUsxRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLCtCQUFzRCxFQUFBOztBQUd4RDtFQUNFLDBDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLGdDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDJDQUFpRSxFQUFBOztBQUduRTtFQUNFLCtCQUFzRCxFQUFBOztBQUd4RDtFQUNFLDBDQUFpRSxFQUFBOztBQUduRTtFQUNFLDhCQUFzRCxFQUFBOztBQUd4RDtFQUNFLHlDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLCtCQUF1RCxFQUFBOztBQUd6RDtFQUNFLDBDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLCtCQUF3RCxFQUFBOztBQUcxRDtFQUNFLDBDQUFtRSxFQUFBOztBQUtyRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDZDQUF5RSxFQUFBOztBQUczRTtFQUNFLGlDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDRDQUF5RSxFQUFBOztBQUczRTtFQUNFLGdDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDJDQUF5RSxFQUFBOztBQUczRTtFQUNFLGlDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDRDQUF5RSxFQUFBOztBQUszRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGlDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDRDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF5RCxFQUFBOztBQUczRDtFQUNFLDZDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUt0RTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUtyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDZDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGlDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDRDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGdDQUF3RCxFQUFBOztBQUcxRDtFQUNFLDJDQUFtRSxFQUFBOztBQUdyRTtFQUNFLCtCQUF3RCxFQUFBOztBQUcxRDtFQUNFLDBDQUFtRSxFQUFBOztBQUdyRTtFQUNFLGtDQUF5RCxFQUFBOztBQUczRDtFQUNFLDZDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGlDQUF5RCxFQUFBOztBQUczRDtFQUNFLDRDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUd0RTtFQUNFLGdDQUF5RCxFQUFBOztBQUczRDtFQUNFLDJDQUFvRSxFQUFBOztBQUt0RTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDZDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGlDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDRDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGdDQUE2RCxFQUFBOztBQUcvRDtFQUNFLDJDQUF3RSxFQUFBOztBQUcxRTtFQUNFLGtDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDZDQUF5RSxFQUFBOztBQUczRTtFQUNFLGlDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDRDQUF5RSxFQUFBOztBQUczRTtFQUNFLCtCQUE4RCxFQUFBOztBQUdoRTtFQUNFLDBDQUF5RSxFQUFBOztBQUczRTtFQUNFLCtCQUE4RCxFQUFBOztBQUdoRTtFQUNFLDBDQUF5RSxFQUFBOztBQUszRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGtDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDZDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGlDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDRDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLGdDQUF1RCxFQUFBOztBQUd6RDtFQUNFLDJDQUFrRSxFQUFBOztBQUdwRTtFQUNFLCtCQUF1RCxFQUFBOztBQUd6RDtFQUNFLDBDQUFrRSxFQUFBOztBQUdwRTtFQUNFLCtCQUF1RCxFQUFBOztBQUd6RDtFQUNFLDBDQUFrRSxFQUFBOztBQUdwRTtFQUNFLCtCQUF1RCxFQUFBOztBQUd6RDtFQUNFLDBDQUFrRSxFQUFBOztBQUtwRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFxRCxFQUFBOztBQUd2RDtFQUNFLDZDQUFnRSxFQUFBOztBQUdsRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLGtDQUFzRCxFQUFBOztBQUd4RDtFQUNFLDZDQUFpRSxFQUFBOztBQUduRTtFQUNFLCtCQUFzRCxFQUFBOztBQUd4RDtFQUNFLDBDQUFpRSxFQUFBOztBQUduRTtFQUNFLCtCQUFzRCxFQUFBOztBQUd4RDtFQUNFLDBDQUFpRSxFQUFBOztBQUduRTtFQUNFLCtCQUFzRCxFQUFBOztBQUd4RDtFQUNFLDBDQUFpRSxFQUFBOztBQUtuRTtFQUNFLGlDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDRDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGtDQUEwRCxFQUFBOztBQUc1RDtFQUNFLDZDQUFxRSxFQUFBOztBQUd2RTtFQUNFLGtDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDZDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGtDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDZDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGtDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDZDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGtDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDZDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGlDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDRDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGlDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDRDQUFzRSxFQUFBOztBQUd4RTtFQUNFLGdDQUEyRCxFQUFBOztBQUc3RDtFQUNFLDJDQUFzRSxFQUFBOztBQUd4RTtFQUNFLCtCQUEyRCxFQUFBOztBQUc3RDtFQUNFLDBDQUFzRSxFQUFBOztBQUd4RTtFQUNFLCtCQUEyRCxFQUFBOztBQUc3RDtFQUNFLDBDQUFzRSxFQUFBOztBQUt4RTtFQUNFLHVDQUE0RCxFQUFBOztBQUc5RDtFQUNFLDRCQUFpRCxFQUFBOztBQUtuRDtFQUNFLDZDQUE0RCxFQUFBOztBQUc5RDtFQUNFLGtDQUFpRCxFQUFBOztBQU1yRDtFQUNFLDJDQUE4RCxFQUFBOztBQUdoRTtFQUNFLDZDQUF1RSxFQUFBOztBQUd6RTtFQUNFLDJDQUFtRSxF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OztBM0RWekM7RUFDSSxnQ0FBNkI7RUFDN0Isb0NBQTZDLEVBQUE7O0FBR2pEO0VBRVksY0FBYyxFQUFBIiwiZmlsZSI6ImluZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogIERvIG5vdCByZW1vdmUgdGhlIGNvbW1lbnRzIGJlbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgd2lyZWRlcCB0byBpbmplY3RcbiAqICBzYXNzIGRlcGVuZGVuY2llcyB3aGVuIGRlZmluZWQgaW4gdGhlIGJvd2VyLmpzb24gb2YgeW91ciBkZXBlbmRlbmNpZXNcbiAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDsgfVxuXG5odG1sIGJvZHksIGlucHV0LCBidXR0b24sIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7IH1cblxuLnN1Y2Nlc3MtbWVzc2FnZS1zZW50IHAge1xuICBjb2xvcjogIzk5OTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5zdWNjZXNzLW1lc3NhZ2Utc2VudCBoMyB7XG4gIGNvbG9yOiAjNzc3O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm5vdGlmaWNhdGlvbi1mc2Vuc2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi13aWR0aDogNDUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGVmdDogNTAlO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbiAgdG9wOiAwO1xuICBib3gtc2hhZG93OiAwIDAgM3B4IGdyZXk7XG4gIGFuaW1hdGlvbi1uYW1lOiBub3RpZmljYXRpb24tZW50ZXI7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7IH1cblxuLm5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gIHRvcDogLTQwcHg7XG4gIGFuaW1hdGlvbi1uYW1lOiBub3RpZmljYXRpb24tbGVhdmU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICBhbmltYXRpb24tZHVyYXRpb246IDAuM3M7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7IH1cblxuLm5vdGlmaWNhdGlvbi1kZWZhdWx0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsgfVxuXG4ubm90aWZpY2F0aW9uLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG5cbi5ub3RpZmljYXRpb24tc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1OGNlNTg7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ubm90aWZpY2F0aW9uLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG5cbi5ub3RpZmljYXRpb24tZXJyb3Ige1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzY0NjQ7IH1cblxuQGtleWZyYW1lcyBub3RpZmljYXRpb24tZW50ZXIge1xuICBmcm9tIHtcbiAgICB0b3A6IC0zMHB4OyB9XG4gIHRvIHtcbiAgICB0b3A6IDA7IH0gfVxuXG5Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gIGZyb20ge1xuICAgIHRvcDogMHB4OyB9XG4gIHRvIHtcbiAgICB0b3A6IC00MHB4OyB9IH1cblxuLyogZmFsbGJhY2sgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9NYXRlcmlhbC1JY29ucy53b2ZmMikgZm9ybWF0KFwid29mZjJcIik7IH1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICdsaWdhJztcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuXG4vKiBSdWxlcyBmb3Igc2l6aW5nIHRoZSBpY29uLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLTE4IHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC0yNCB7XG4gIGZvbnQtc2l6ZTogMjRweDsgfVxuXG4ubWF0ZXJpYWwtaWNvbnMubWQtMzYge1xuICBmb250LXNpemU6IDM2cHg7IH1cblxuLm1hdGVyaWFsLWljb25zLm1kLTQ4IHtcbiAgZm9udC1zaXplOiA0OHB4OyB9XG5cbi8qIFJ1bGVzIGZvciB1c2luZyBpY29ucyBhcyBibGFjayBvbiBhIGxpZ2h0IGJhY2tncm91bmQuICovXG4ubWF0ZXJpYWwtaWNvbnMubWQtZGFyayB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNTQpOyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC1kYXJrLm1kLWluYWN0aXZlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuLyogUnVsZXMgZm9yIHVzaW5nIGljb25zIGFzIHdoaXRlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLWxpZ2h0IHtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi5tYXRlcmlhbC1pY29ucy5tZC1saWdodC5tZC1pbmFjdGl2ZSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cblxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuXG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuXG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsgfVxuXG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1OyB9XG5cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7IH1cblxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG5cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsgfVxuXG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjsgfVxuXG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOyB9XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG5cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1OyB9XG5cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsgfVxuXG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjsgfVxuXG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjsgfVxuXG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG5cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjsgfVxuXG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGOyB9XG5cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5RjsgfVxuXG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tQm9sZC50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7IH1cblxuLyogZ3JlZWstZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGOyB9XG5cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7IH1cblxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7IH1cblxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGOyB9XG5cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2OyB9XG5cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMUYwMC0xRkZGOyB9XG5cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7IH1cblxuLyogdmlldG5hbWVzZSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCOyB9XG5cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMjRGLCBVKzFFMDAtMUVGRiwgVSsyMEEwLTIwQUIsIFUrMjBBRC0yMENGLCBVKzJDNjAtMkM3RiwgVStBNzIwLUE3RkY7IH1cblxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogTWF0ZXJpYWwgRGVzaWduIExpdGUgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVGhlc2Ugc2VsZWN0aW9uIHJ1bGUgc2V0cyBoYXZlIHRvIGJlIHNlcGFyYXRlLlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbi8qXG4gKiBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG4gKi9cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXV0aG9yJ3MgY3VzdG9tIHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgY2xhc3Nlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKi9cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4OyB9XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMiAqLyB9XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIHZpZXdwb3J0cyB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiAqLyB9XG5cbkBtZWRpYSBwcmludCwgKG1pbi1yZXNvbHV0aW9uOiAxLjI1ZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciBoaWdoIHJlc29sdXRpb24gZGV2aWNlcyAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyLFxuICAqOmZpcnN0LWxldHRlcixcbiAgKjpmaXJzdC1saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjogaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiOyB9XG4gIC8qXG4gICAgICogRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcbiAgICAgKiBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG4gICAgICovXG4gIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICAvKlxuICAgICAqIFByaW50aW5nIFRhYmxlczpcbiAgICAgKiBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAgKi9cbiAgdGhlYWQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxuICB0cixcbiAgaW1nIHtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBwLFxuICBoMixcbiAgaDMge1xuICAgIG9ycGhhbnM6IDM7XG4gICAgd2lkb3dzOiAzOyB9XG4gIGgyLFxuICBoMyB7XG4gICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogUmVtb3ZlIHRoZSB1bndhbnRlZCBib3ggYXJvdW5kIEZBQiBidXR0b25zICovXG4vKiBNb3JlIGluZm86IGh0dHA6Ly9nb28uZ2wvSVB3S2kgKi9cbmEsIC5tZGwtYWNjb3JkaW9uLCAubWRsLWJ1dHRvbiwgLm1kbC1jYXJkLCAubWRsLWNoZWNrYm94LCAubWRsLWRyb3Bkb3duLW1lbnUsXG4ubWRsLWljb24tdG9nZ2xlLCAubWRsLWl0ZW0sIC5tZGwtcmFkaW8sIC5tZGwtc2xpZGVyLCAubWRsLXN3aXRjaCwgLm1kbC10YWJzX190YWIge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7IH1cblxuLypcbiAqIE1ha2UgaHRtbCB0YWtlIHVwIHRoZSBlbnRpcmUgc2NyZWVuXG4gKiBUaGVuIHNldCB0b3VjaC1hY3Rpb24gdG8gYXZvaWQgdG91Y2ggZGVsYXkgb24gbW9iaWxlIElFXG4gKi9cbmh0bWwge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOyB9XG5cbi8qXG4qIE1ha2UgYm9keSB0YWtlIHVwIHRoZSBlbnRpcmUgc2NyZWVuXG4qIFJlbW92ZSBib2R5IG1hcmdpbiBzbyBsYXlvdXQgY29udGFpbmVycyBkb24ndCBjYXVzZSBleHRyYSBvdmVyZmxvdy5cbiovXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4vKlxuICogTWFpbiBkaXNwbGF5IHJlc2V0IGZvciBJRSBzdXBwb3J0LlxuICogU291cmNlOiBodHRwOi8vd2VibG9nLndlc3Qtd2luZC5jb20vcG9zdHMvMjAxNS9KYW4vMTIvbWFpbi1IVE1MNS1UYWctbm90LXdvcmtpbmctaW4tSW50ZXJuZXQtRXhwbG9yZXItOTEwMTFcbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qXG4qIEFwcGx5IG5vIGRpc3BsYXkgdG8gZWxlbWVudHMgd2l0aCB0aGUgaGlkZGVuIGF0dHJpYnV0ZS5cbiogSUUgOSBhbmQgMTAgc3VwcG9ydC5cbiovXG4qW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG5odG1sLCBib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjBweDsgfVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICAqIFN0eWxlcyBmb3IgSFRNTCBlbGVtZW50c1xuICAqL1xuaDEgc21hbGwsIGgyIHNtYWxsLCBoMyBzbWFsbCwgaDQgc21hbGwsIGg1IHNtYWxsLCBoNiBzbWFsbCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBvcGFjaXR5OiAwLjU0O1xuICBmb250LXNpemU6IDAuNmVtOyB9XG5cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuaDIge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuaDUge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG5wIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuYSB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuYmxvY2txdW90ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB9XG4gIGJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuNWVtO1xuICAgIGNvbnRlbnQ6ICfigJwnOyB9XG4gIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4wNWVtOyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxOyB9XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG51bCwgb2wge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4vKipcbiAqIENsYXNzIE5hbWUgU3R5bGVzXG4gKi9cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0zIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDU2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTItY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1zdWJoZWFkIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtY29sb3ItY29udHJhc3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAyMDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYmxhY2sge1xuICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtY29sb3ItdGV4dC0tcmVkIHtcbiAgY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCw2Nyw1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNSwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA1LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC0yMDAge1xuICBjb2xvcjogcmdiKDIzOSwxNTQsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDE1NCwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtMzAwIHtcbiAgY29sb3I6IHJnYigyMjksMTE1LDExNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyOSwxMTUsMTE1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDgzLDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDgzLDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjI5LDU3LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI5LDU3LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjExLDQ3LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjExLDQ3LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTk4LDQwLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk4LDQwLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTgzLDI4LDI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTgzLDI4LDI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMzgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxMzgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSw4Miw4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODIsODIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzLDY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMyw2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC1BNzAwIHtcbiAgY29sb3I6IHJnYigyMTMsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rIHtcbiAgY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTUwIHtcbiAgY29sb3I6IHJnYigyNTIsMjI4LDIzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MiwyMjgsMjM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0xMDAge1xuICBjb2xvcjogcmdiKDI0OCwxODcsMjA4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OCwxODcsMjA4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0yMDAge1xuICBjb2xvcjogcmdiKDI0NCwxNDMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCwxNDMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay0zMDAge1xuICBjb2xvcjogcmdiKDI0MCw5OCwxNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwLDk4LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNDAwIHtcbiAgY29sb3I6IHJnYigyMzYsNjQsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzNiw2NCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjMzLDMwLDk5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNjAwIHtcbiAgY29sb3I6IHJnYigyMTYsMjcsOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LDI3LDk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay03MDAge1xuICBjb2xvcjogcmdiKDE5NCwyNCw5MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMjQsOTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTczLDIwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MywyMCw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstOTAwIHtcbiAgY29sb3I6IHJnYigxMzYsMTQsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTM2LDE0LDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTI4LDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEyOCwxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSw2NCwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw2NCwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUE0MDAge1xuICBjb2xvcjogcmdiKDI0NSwwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMCw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTk3LDE3LDk4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMTcsOTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUge1xuICBjb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAge1xuICBjb2xvcjogcmdiKDI0MywyMjksMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMsMjI5LDI0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0xMDAge1xuICBjb2xvcjogcmdiKDIyNSwxOTAsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI1LDE5MCwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMjAwIHtcbiAgY29sb3I6IHJnYigyMDYsMTQ3LDIxNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNiwxNDcsMjE2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTg2LDEwNCwyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODYsMTA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS00MDAge1xuICBjb2xvcjogcmdiKDE3MSw3MSwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzEsNzEsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwzOSwxNzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNjAwIHtcbiAgY29sb3I6IHJnYigxNDIsMzYsMTcwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQyLDM2LDE3MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS03MDAge1xuICBjb2xvcjogcmdiKDEyMywzMSwxNjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjMsMzEsMTYyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTA2LDI3LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwNiwyNywxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtOTAwIHtcbiAgY29sb3I6IHJnYig3NCwyMCwxNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NCwyMCwxNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjM0LDEyOCwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM0LDEyOCwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjI0LDY0LDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjQsNjQsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLUE0MDAge1xuICBjb2xvcjogcmdiKDIxMywwLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTMsMCwyNDkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTcwLDAsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MCwwLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlIHtcbiAgY29sb3I6IHJnYigxMDMsNTgsMTgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MCB7XG4gIGNvbG9yOiByZ2IoMjM3LDIzMSwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM3LDIzMSwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0xMDAge1xuICBjb2xvcjogcmdiKDIwOSwxOTYsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDksMTk2LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDE1NywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwxNTcsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMzAwIHtcbiAgY29sb3I6IHJnYigxNDksMTE3LDIwNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQ5LDExNywyMDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS00MDAge1xuICBjb2xvcjogcmdiKDEyNiw4NywxOTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNiw4NywxOTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS01MDAge1xuICBjb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS02MDAge1xuICBjb2xvcjogcmdiKDk0LDUzLDE3NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTQsNTMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgY29sb3I6IHJnYig4MSw0NSwxNjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDgxLDQ1LDE2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTgwMCB7XG4gIGNvbG9yOiByZ2IoNjksMzksMTYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2OSwzOSwxNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS05MDAge1xuICBjb2xvcjogcmdiKDQ5LDI3LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDksMjcsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDEzNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzksMTM2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUEyMDAge1xuICBjb2xvcjogcmdiKDEyNCw3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjQsNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMTAxLDMxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMSwzMSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BNzAwIHtcbiAgY29sb3I6IHJnYig5OCwwLDIzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk4LDAsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvIHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MCB7XG4gIGNvbG9yOiByZ2IoMjMyLDIzNCwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwyMzQsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTk3LDIwMiwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMjAyLDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby0yMDAge1xuICBjb2xvcjogcmdiKDE1OSwxNjgsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU5LDE2OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tMzAwIHtcbiAgY29sb3I6IHJnYigxMjEsMTM0LDIwMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMSwxMzQsMjAzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTQwMCB7XG4gIGNvbG9yOiByZ2IoOTIsMTA3LDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDkyLDEwNywxOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNTAwIHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNjAwIHtcbiAgY29sb3I6IHJnYig1Nyw3MywxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1Nyw3MywxNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNzAwIHtcbiAgY29sb3I6IHJnYig0OCw2MywxNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0OCw2MywxNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tODAwIHtcbiAgY29sb3I6IHJnYig0MCw1MywxNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MCw1MywxNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tOTAwIHtcbiAgY29sb3I6IHJnYigyNiwzNSwxMjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwzNSwxMjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTQwLDE1OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQwLDE1OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTIwMCB7XG4gIGNvbG9yOiByZ2IoODMsMTA5LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig4MywxMDksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE0MDAge1xuICBjb2xvcjogcmdiKDYxLDkwLDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2MSw5MCwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTcwMCB7XG4gIGNvbG9yOiByZ2IoNDgsNzksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDc5LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUge1xuICBjb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS01MCB7XG4gIGNvbG9yOiByZ2IoMjI3LDI0MiwyNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjcsMjQyLDI1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMTAwIHtcbiAgY29sb3I6IHJnYigxODcsMjIyLDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODcsMjIyLDI1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMjAwIHtcbiAgY29sb3I6IHJnYigxNDQsMjAyLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDQsMjAyLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtMzAwIHtcbiAgY29sb3I6IHJnYigxMDAsMTgxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMTgxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNDAwIHtcbiAgY29sb3I6IHJnYig2NiwxNjUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY2LDE2NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMzMsMTUwLDI0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS02MDAge1xuICBjb2xvcjogcmdiKDMwLDEzNiwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzAsMTM2LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNzAwIHtcbiAgY29sb3I6IHJnYigyNSwxMTgsMjEwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1LDExOCwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjEsMTAxLDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMSwxMDEsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS05MDAge1xuICBjb2xvcjogcmdiKDEzLDcxLDE2MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMyw3MSwxNjEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLUExMDAge1xuICBjb2xvcjogcmdiKDEzMCwxNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzAsMTc3LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoNjgsMTM4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjgsMTM4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoNDEsMTIxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDEsMTIxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoNDEsOTgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MSw5OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlIHtcbiAgY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwIHtcbiAgY29sb3I6IHJnYigyMjUsMjQ1LDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNSwyNDUsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0xMDAge1xuICBjb2xvcjogcmdiKDE3OSwyMjksMjUyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwyMjksMjUyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0yMDAge1xuICBjb2xvcjogcmdiKDEyOSwyMTIsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOSwyMTIsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0zMDAge1xuICBjb2xvcjogcmdiKDc5LDE5NSwyNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzksMTk1LDI0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNDAwIHtcbiAgY29sb3I6IHJnYig0MSwxODIsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLDE4MiwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMywxNjksMjQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNjAwIHtcbiAgY29sb3I6IHJnYigzLDE1NSwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMywxNTUsMjI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS03MDAge1xuICBjb2xvcjogcmdiKDIsMTM2LDIwOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyLDEzNiwyMDkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMiwxMTksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIsMTE5LDE4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtOTAwIHtcbiAgY29sb3I6IHJnYigxLDg3LDE1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxLDg3LDE1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIxNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMjAwIHtcbiAgY29sb3I6IHJnYig2NCwxOTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NCwxOTYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDE3NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTc2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNDUsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE0NSwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuIHtcbiAgY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTUwIHtcbiAgY29sb3I6IHJnYigyMjQsMjQ3LDI1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyNDcsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0xMDAge1xuICBjb2xvcjogcmdiKDE3OCwyMzUsMjQyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyMzUsMjQyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0yMDAge1xuICBjb2xvcjogcmdiKDEyOCwyMjIsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMjIsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi0zMDAge1xuICBjb2xvcjogcmdiKDc3LDIwOCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzcsMjA4LDIyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNDAwIHtcbiAgY29sb3I6IHJnYigzOCwxOTgsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDE5OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTUwMCB7XG4gIGNvbG9yOiByZ2IoMCwxODgsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNjAwIHtcbiAgY29sb3I6IHJnYigwLDE3MiwxOTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNzIsMTkzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi03MDAge1xuICBjb2xvcjogcmdiKDAsMTUxLDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE1MSwxNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTgwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMzEsMTQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTMxLDE0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tOTAwIHtcbiAgY29sb3I6IHJnYigwLDk2LDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDk2LDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTMyLDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzMiwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMjAwIHtcbiAgY29sb3I6IHJnYigyNCwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNCwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDIyOSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjI5LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxODQsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE4NCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsIHtcbiAgY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwIHtcbiAgY29sb3I6IHJnYigyMjQsMjQyLDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyNDIsMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0xMDAge1xuICBjb2xvcjogcmdiKDE3OCwyMjMsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyMjMsMjE5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0yMDAge1xuICBjb2xvcjogcmdiKDEyOCwyMDMsMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOCwyMDMsMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC0zMDAge1xuICBjb2xvcjogcmdiKDc3LDE4MiwxNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzcsMTgyLDE3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNDAwIHtcbiAgY29sb3I6IHJnYigzOCwxNjYsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDE2NiwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNTAsMTM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNjAwIHtcbiAgY29sb3I6IHJnYigwLDEzNywxMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMzcsMTIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC03MDAge1xuICBjb2xvcjogcmdiKDAsMTIxLDEwNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEyMSwxMDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTgwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMDUsOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMDUsOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTkwMCB7XG4gIGNvbG9yOiByZ2IoMCw3Nyw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDc3LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BMTAwIHtcbiAgY29sb3I6IHJnYigxNjcsMjU1LDIzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY3LDI1NSwyMzUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLUEyMDAge1xuICBjb2xvcjogcmdiKDEwMCwyNTUsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMjU1LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjksMjMzLDE4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjksMjMzLDE4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxOTEsMTY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE5MSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbiB7XG4gIGNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTUwIHtcbiAgY29sb3I6IHJnYigyMzIsMjQ1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzIsMjQ1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjAwLDIzMCwyMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMCwyMzAsMjAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMjAwIHtcbiAgY29sb3I6IHJnYigxNjUsMjE0LDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTY1LDIxNCwxNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0zMDAge1xuICBjb2xvcjogcmdiKDEyOSwxOTksMTMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjksMTk5LDEzMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTAyLDE4NywxMDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMiwxODcsMTA2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAwIHtcbiAgY29sb3I6IHJnYig3NiwxNzUsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTYwMCB7XG4gIGNvbG9yOiByZ2IoNjcsMTYwLDcxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2NywxNjAsNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi03MDAge1xuICBjb2xvcjogcmdiKDU2LDE0Miw2MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTYsMTQyLDYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tODAwIHtcbiAgY29sb3I6IHJnYig0NiwxMjUsNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ2LDEyNSw1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjcsOTQsMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI3LDk0LDMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTg1LDI0NiwyMDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODUsMjQ2LDIwMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUEyMDAge1xuICBjb2xvcjogcmdiKDEwNSwyNDAsMTc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA1LDI0MCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BNDAwIHtcbiAgY29sb3I6IHJnYigwLDIzMCwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDIzMCwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDIwMCw4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjAwLDgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4ge1xuICBjb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTM5LDE5NSw3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTUwIHtcbiAgY29sb3I6IHJnYigyNDEsMjQ4LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDEsMjQ4LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjIwLDIzNywyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMCwyMzcsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMjAwIHtcbiAgY29sb3I6IHJnYigxOTcsMjI1LDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk3LDIyNSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0zMDAge1xuICBjb2xvcjogcmdiKDE3NCwyMTMsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzQsMjEzLDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTU2LDIwNCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1NiwyMDQsMTAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAwIHtcbiAgY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNjAwIHtcbiAgY29sb3I6IHJnYigxMjQsMTc5LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjQsMTc5LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgY29sb3I6IHJnYigxMDQsMTU5LDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDQsMTU5LDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tODAwIHtcbiAgY29sb3I6IHJnYig4NSwxMzksNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg1LDEzOSw0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTkwMCB7XG4gIGNvbG9yOiByZ2IoNTEsMTA1LDMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1MSwxMDUsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BMTAwIHtcbiAgY29sb3I6IHJnYigyMDQsMjU1LDE0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNCwyNTUsMTQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDI1NSw4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OCwyNTUsODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BNDAwIHtcbiAgY29sb3I6IHJnYigxMTgsMjU1LDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTgsMjU1LDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BNzAwIHtcbiAgY29sb3I6IHJnYigxMDAsMjIxLDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAwLDIyMSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUge1xuICBjb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS01MCB7XG4gIGNvbG9yOiByZ2IoMjQ5LDI1MSwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDksMjUxLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMTAwIHtcbiAgY29sb3I6IHJnYigyNDAsMjQ0LDE5NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsMjQ0LDE5NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMjAwIHtcbiAgY29sb3I6IHJnYigyMzAsMjM4LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsMjM4LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtMzAwIHtcbiAgY29sb3I6IHJnYigyMjAsMjMxLDExNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjAsMjMxLDExNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNDAwIHtcbiAgY29sb3I6IHJnYigyMTIsMjI1LDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMiwyMjUsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjA1LDIyMCw1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS02MDAge1xuICBjb2xvcjogcmdiKDE5MiwyMDIsNTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTkyLDIwMiw1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNzAwIHtcbiAgY29sb3I6IHJnYigxNzUsMTgwLDQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NSwxODAsNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTgwMCB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1NywzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU3LDM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS05MDAge1xuICBjb2xvcjogcmdiKDEzMCwxMTksMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMwLDExOSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDI1NSwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCwyNTUsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyMzgsMjU1LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjU1LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BNDAwIHtcbiAgY29sb3I6IHJnYigxOTgsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5OCwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtQTcwMCB7XG4gIGNvbG9yOiByZ2IoMTc0LDIzNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzQsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3cge1xuICBjb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNTAge1xuICBjb2xvcjogcmdiKDI1NSwyNTMsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjUzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNDksMTk2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0OSwxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQ1LDE1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDUsMTU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTMwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0MSwxMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjQxLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy00MDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzgsODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM4LDg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzUsNTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNjAwIHtcbiAgY29sb3I6IHJnYigyNTMsMjE2LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUzLDIxNiw1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy03MDAge1xuICBjb2xvcjogcmdiKDI1MSwxOTIsNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMTkyLDQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTgwMCB7XG4gIGNvbG9yOiByZ2IoMjQ5LDE2OCwzNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwxNjgsMzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctOTAwIHtcbiAgY29sb3I6IHJnYigyNDUsMTI3LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDEyNywyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDE0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDE0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUE0MDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTcwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMTQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyIHtcbiAgY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE5Myw3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAge1xuICBjb2xvcjogcmdiKDI1NSwyNDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM2LDE3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNiwxNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMjQsMTMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI0LDEzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTMwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxMyw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIxMyw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwMiw0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIwMiw0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE5Myw3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci02MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNzksMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3OSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTYwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNjAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE0MywwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTQzLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci05MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyOSwxMjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI5LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMTUsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjE1LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE5NiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE5NiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTcwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlIHtcbiAgY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNTIsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0MywyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDMsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyNCwxNzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjI0LDE3OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDQsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIwNCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTgzLDc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE4Myw3NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS00MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNjcsMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTY3LDM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjUxLDE0MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUxLDE0MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDEyNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDEyNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDEwOCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDEwOCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjMwLDgxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsODEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjA5LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA5LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNzEsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE0NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNDUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTA5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEwOSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2Uge1xuICBjb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODcsMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS01MCB7XG4gIGNvbG9yOiByZ2IoMjUxLDIzMywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUxLDIzMywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDQsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA0LDE4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3MSwxNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNzEsMTQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTM4LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEzOCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS00MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTIsNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxMTIsNjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS01MDAge1xuICBjb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNjAwIHtcbiAgY29sb3I6IHJnYigyNDQsODEsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NCw4MSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMjMwLDc0LDI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzAsNzQsMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS04MDAge1xuICBjb2xvcjogcmdiKDIxNiw2NywyMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjE2LDY3LDIxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtOTAwIHtcbiAgY29sb3I6IHJnYigxOTEsNTQsMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5MSw1NCwxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxNTgsMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1OCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTEwLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMCw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE0MDAge1xuICBjb2xvcjogcmdiKDI1NSw2MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDYxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgY29sb3I6IHJnYigyMjEsNDQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMSw0NCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24ge1xuICBjb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjEsODUsNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi01MCB7XG4gIGNvbG9yOiByZ2IoMjM5LDIzNSwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM5LDIzNSwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi0xMDAge1xuICBjb2xvcjogcmdiKDIxNSwyMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTUsMjA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTg4LDE3MCwxNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4OCwxNzAsMTY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tMzAwIHtcbiAgY29sb3I6IHJnYigxNjEsMTM2LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTYxLDEzNiwxMjcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi00MDAge1xuICBjb2xvcjogcmdiKDE0MSwxMTAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwxMTAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi01MDAge1xuICBjb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tNjAwIHtcbiAgY29sb3I6IHJnYigxMDksNzYsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwOSw3Niw2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTcwMCB7XG4gIGNvbG9yOiByZ2IoOTMsNjQsNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDkzLDY0LDU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tODAwIHtcbiAgY29sb3I6IHJnYig3OCw1Miw0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzgsNTIsNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi05MDAge1xuICBjb2xvcjogcmdiKDYyLDM5LDM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2MiwzOSwzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZXkge1xuICBjb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwIHtcbiAgY29sb3I6IHJnYigyNTAsMjUwLDI1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmV5LTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MCwyNTAsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0xMDAge1xuICBjb2xvcjogcmdiKDI0NSwyNDUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSwyNDUsMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0yMDAge1xuICBjb2xvcjogcmdiKDIzOCwyMzgsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwyMzgsMjM4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS0zMDAge1xuICBjb2xvcjogcmdiKDIyNCwyMjQsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS00MDAge1xuICBjb2xvcjogcmdiKDE4OSwxODksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4OSwxODksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS01MDAge1xuICBjb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTgsMTU4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS02MDAge1xuICBjb2xvcjogcmdiKDExNywxMTcsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDExNywxMTcsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS03MDAge1xuICBjb2xvcjogcmdiKDk3LDk3LDk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk3LDk3LDk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS04MDAge1xuICBjb2xvcjogcmdiKDY2LDY2LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY2LDY2LDY2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleS05MDAge1xuICBjb2xvcjogcmdiKDMzLDMzLDMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDMzLDMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5IHtcbiAgY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwIHtcbiAgY29sb3I6IHJnYigyMzYsMjM5LDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LDIzOSwyNDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMTAwIHtcbiAgY29sb3I6IHJnYigyMDcsMjE2LDIyMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNywyMTYsMjIwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTIwMCB7XG4gIGNvbG9yOiByZ2IoMTc2LDE5MCwxOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNzYsMTkwLDE5NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0zMDAge1xuICBjb2xvcjogcmdiKDE0NCwxNjQsMTc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQ0LDE2NCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNDAwIHtcbiAgY29sb3I6IHJnYigxMjAsMTQ0LDE1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMCwxNDQsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwMCB7XG4gIGNvbG9yOiByZ2IoOTYsMTI1LDEzOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNjAwIHtcbiAgY29sb3I6IHJnYig4NCwxMTAsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODQsMTEwLDEyMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS03MDAge1xuICBjb2xvcjogcmdiKDY5LDkwLDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY5LDkwLDEwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS04MDAge1xuICBjb2xvcjogcmdiKDU1LDcxLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTUsNzEsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktOTAwIHtcbiAgY29sb3I6IHJnYigzOCw1MCw1NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDM4LDUwLDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmxhY2sge1xuICBjb2xvcjogcmdiKDAsMCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0td2hpdGUge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXByaW1hcnktY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeS1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQtY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWNvbnRyYXN0IHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktZGFyayB7XG4gIGNvbG9yOiByZ2IoNDgsNjMsMTU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50IHtcbiAgY29sb3I6IHJnYigyNTUsNjQsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50LWNvbnRyYXN0IHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1yaXBwbGUge1xuICBiYWNrZ3JvdW5kOiByZ2IoMCwwLDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogNTBweDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1yaXBwbGUuaXMtYW5pbWF0aW5nIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgaGVpZ2h0IDAuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC42cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLXJpcHBsZS5pcy12aXNpYmxlIHtcbiAgICBvcGFjaXR5OiAwLjM7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtYW5pbWF0aW9uLS1kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLWFuaW1hdGlvbi0tbGluZWFyLW91dC1zbG93LWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtYW5pbWF0aW9uLS1mYXN0LW91dC1saW5lYXItaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtYmFkZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1yaWdodDogMjRweDsgfVxuICAubWRsLWJhZGdlOm5vdChbZGF0YS1iYWRnZV0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbiAgLm1kbC1iYWRnZVtkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJhZGdlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMXB4O1xuICAgIHJpZ2h0OiAtMjRweDtcbiAgICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSw2NCwxMjkpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24gLm1kbC1iYWRnZVtkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgICB0b3A6IC0xMHB4O1xuICAgICAgcmlnaHQ6IC01cHg7IH1cbiAgLm1kbC1iYWRnZS5tZGwtYmFkZ2UtLW5vLWJhY2tncm91bmRbZGF0YS1iYWRnZV06YWZ0ZXIge1xuICAgIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IGdyYXk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHJnYigwLDAsMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtaW4td2lkdGg6IDY0cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWRsLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGwtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTsgfVxuICAubWRsLWJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZCB7XG4gICAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gICAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7IH1cblxuaW5wdXQubWRsLWJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5cbi5tZGwtYnV0dG9uLS1yYWlzZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGwtYnV0dG9uLS1yYWlzZWQ6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU4LDE1OCwxNTgsIDAuNDApOyB9XG4gIC5tZGwtYnV0dG9uLS1yYWlzZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjM2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuICAgIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZDpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWJ1dHRvbi0tZmFiIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGhlaWdodDogNTZweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHdpZHRoOiA1NnB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTtcbiAgYm94LXNoYWRvdzogMCAxcHggMS41cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDFweCAxcHggMCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgLm1kbC1idXR0b24tLWZhYiAubWF0ZXJpYWwtaWNvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEycHgsIC0xMnB4KTtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDsgfVxuICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLW1pbmktZmFiIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4OyB9XG4gIC5tZGwtYnV0dG9uLS1mYWIgLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTsgfVxuICAubWRsLWJ1dHRvbi0tZmFiOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tZmFiOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDY0LDEyOSk7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw2NCwxMjkpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQ6YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTsgfVxuICAgIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZCAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG5cbi5tZGwtYnV0dG9uLS1pY29uIHtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgLm1kbC1idXR0b24tLWljb24gLm1hdGVyaWFsLWljb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMnB4LCAtMTJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7IH1cbiAgLm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4OyB9XG4gICAgLm1kbC1idXR0b24tLWljb24ubWRsLWJ1dHRvbi0tbWluaS1pY29uIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICB0b3A6IDBweDtcbiAgICAgIGxlZnQ6IDBweDsgfVxuICAubWRsLWJ1dHRvbi0taWNvbiAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG5cbi5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgei1pbmRleDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLWJ1dHRvbltkaXNhYmxlZF0gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWRpc2FibGVkIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5IHtcbiAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1yYWlzZWQsIC5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTsgfVxuXG4ubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudCB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSk7IH1cbiAgLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tcmFpc2VkLCAubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1mYWIge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTsgfVxuXG4ubWRsLWJ1dHRvbltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ubWRsLWJ1dHRvbi0tZmFiW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1idXR0b24tLXJhaXNlZFtkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1jb2xvcmVkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29ucyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAzMzBweDtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1jYXJkX19tZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjQsMTI5KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLWNhcmRfX3RpdGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IHJnYigwLDAsMCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE2cHggMTZweDtcbiAgcGVyc3BlY3RpdmUtb3JpZ2luOiAxNjVweCA1NnB4O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAxNjVweCA1NnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGwtY2FyZF9fdGl0bGUubWRsLWNhcmQtLWJvcmRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4ubWRsLWNhcmRfX3RpdGxlLXRleHQge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE0OXB4IDQ4cHg7XG4gIG1hcmdpbjogMDsgfVxuXG4ubWRsLWNhcmRfX3N1YnRpdGxlLXRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtY2FyZF9fc3VwcG9ydGluZy10ZXh0IHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAxNnB4IDE2cHg7XG4gIHdpZHRoOiA5MCU7IH1cblxuLm1kbC1jYXJkX19hY3Rpb25zIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTtcbiAgcGFkZGluZzogOHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5tZGwtY2FyZF9fYWN0aW9ucy5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5tZGwtY2FyZC0tZXhwYW5kIHtcbiAgZmxleC1ncm93OiAxOyB9XG5cbi5tZGwtY2FyZF9fbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRvcDogMTZweDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi5tZGwtY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLWNoZWNrYm94X19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtY2hlY2tib3guaXMtdXBncmFkZWQgLm1kbC1jaGVja2JveF9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDNweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogM3B4O1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1mb2N1c2VkIC5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAubWRsLWNoZWNrYm94LmlzLWZvY3VzZWQuaXMtY2hlY2tlZCAubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggOHB4IHJnYmEoNjMsODEsMTgxLCAwLjI2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cblxuLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hc2s6IHVybChcIi9pbWFnZXMvdGljay1tYXNrLnN2Zz9lbWJlZFwiKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjhzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDsgfVxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKSB1cmwoXCIvaW1hZ2VzL3RpY2suc3ZnP2VtYmVkXCIpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtY2hlY2tlZC5pcy1kaXNhYmxlZCAubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpIHVybChcIi9pbWFnZXMvdGljay5zdmc/ZW1iZWRcIik7IH1cblxuLm1kbC1jaGVja2JveF9fbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtNnB4O1xuICBsZWZ0OiAtMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLWRhdGEtdGFibGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAubWRsLWRhdGEtdGFibGUgdGhlYWQge1xuICAgIHBhZGRpbmctYm90dG9tOiAzcHg7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGhlYWQgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgbWFyZ2luLXRvcDogMDsgfVxuICAubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0Ym9keSB0ci5pcy1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwOyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRkLCAubWRsLWRhdGEtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDAgMThweCAwIDE4cHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZSwgLm1kbC1kYXRhLXRhYmxlIHRoOmZpcnN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkOmxhc3Qtb2YtdHlwZSwgLm1kbC1kYXRhLXRhYmxlIHRoOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtZGF0YS10YWJsZSB0ZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGQgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDI0cHg7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGggLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiAyNHB4OyB9XG5cbi5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgd2lkdGg6IDE2cHg7IH1cblxuLm1kbC1kYXRhLXRhYmxlX19jZWxsLS1ub24tbnVtZXJpYy5tZGwtZGF0YS10YWJsZV9fY2VsbC0tbm9uLW51bWVyaWMge1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1tZWdhLWZvb3RlciB7XG4gIHBhZGRpbmc6IDE2cHggNDBweDtcbiAgY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Niw2Niw2Nik7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tdG9wLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fdG9wLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19taWRkbGUtc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9uOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjbGVhcjogYm90aDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uIGEsXG4ubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2xlZnQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24gYSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXNvY2lhbC1idG4sXG4ubWRsLW1lZ2EtZm9vdGVyX19zb2NpYWwtYnRuIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uIHtcbiAgICB3aWR0aDogMzMlOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgxKSxcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDIpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMykge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAgIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKTphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyk6YWZ0ZXIge1xuICAgICAgY2xlYXI6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgICBjbGVhcjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLW1pZGRsZS1zZWN0aW9uOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19taWRkbGUtc2VjdGlvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX2JvdHRvbS1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gICAgd2lkdGg6IDI0JTtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1NS44cHg7XG4gIHBhZGRpbmc6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogLTE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMTtcbiAgb3BhY2l0eTogMDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgY29udGVudDogJ1xcRTVDRSc7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBjb250ZW50OiAnXFxFNUNGJzsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6IDM5LjhweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjMuOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6IHJnYigyMjQsMjI0LDIyNCk7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIzLjhweDtcbiAgaGVpZ2h0OiAyMy44cHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdDphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnJzsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksXG4ubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGEsXG4ubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAgIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJzsgfSB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24ge1xuICBwYWRkaW5nLXRvcDogMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLWxvZ28ge1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICBjb2xvcjogd2hpdGU7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGxpLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIG1hcmdpbi1yaWdodDogMTZweDsgfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLWxvZ28ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtbWluaS1mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDMycHggMTZweDtcbiAgY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Niw2Niw2Nik7IH1cbiAgLm1kbC1taW5pLWZvb3RlcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1taW5pLWZvb3RlciAubWRsLWxvZ28ge1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4OyB9XG5cbi5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IG5vd3JhcDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIC5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBsaSxcbiAgLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gICAgICAubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QgbGksXG4gICAgICAubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMzZweDsgfSB9XG4gIC5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBhLFxuICAubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3QgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fbGVmdC1zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcmRlcjogMDsgfVxuXG4ubWRsLW1pbmktZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3JkZXI6IDE7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tc29jaWFsLWJ0bixcbi5tZGwtbWluaS1mb290ZXJfX3NvY2lhbC1idG4ge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU4LDE1OCk7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1pY29uLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWljb24tdG9nZ2xlX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtdXBncmFkZWQgLm1kbC1pY29uLXRvZ2dsZV9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICBjb2xvcjogcmdiKDk3LDk3LDk3KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLWljb24tdG9nZ2xlX19sYWJlbC5tYXRlcmlhbC1pY29ucyB7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtY2hlY2tlZCAubWRsLWljb24tdG9nZ2xlX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWZvY3VzZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cblxuLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZV9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDk3LDk3LDk3KTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWRpc2FibGVkIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1tZW51X19jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSwgLm1kbC1tZW51X19jb250YWluZXIuaXMtYW5pbWF0aW5nIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4ubWRsLW1lbnVfX291dGxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAubWRsLW1lbnVfX291dGxpbmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB6LWluZGV4OiA5OTk7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS1ib3R0b20tcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDsgfVxuICAubWRsLW1lbnVfX291dGxpbmUubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTsgfVxuXG4ubWRsLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAxMjRweDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgei1pbmRleDogLTE7IH1cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAubWRsLW1lbnUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgei1pbmRleDogOTk5OyB9XG4gIC5tZGwtbWVudS5pcy1hbmltYXRpbmcge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBjbGlwIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLWJvdHRvbS1yaWdodCB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogMDsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwOyB9XG4gIC5tZGwtbWVudS5tZGwtbWVudS0tdG9wLXJpZ2h0IHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7IH1cbiAgLm1kbC1tZW51Lm1kbC1tZW51LS11bmFsaWduZWQge1xuICAgIHRvcDogYXV0bztcbiAgICBsZWZ0OiBhdXRvOyB9XG5cbi5tZGwtbWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBvdXRsaW5lLWNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgLm1kbC1tZW51X19pdGVtIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5tZGwtbWVudV9faXRlbTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF06aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLW1lbnVfX2l0ZW1bZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXSAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLW1lbnVfX2l0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLW1lbnVfX2l0ZW0tLXJpcHBsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4ubWRsLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0cHg7XG4gIHdpZHRoOiA1MDBweDsgfVxuXG4ubWRsLXByb2dyZXNzID4gLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLXByb2dyZXNzID4gLnByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIHotaW5kZXg6IDE7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1wcm9ncmVzcyA+IC5idWZmZXJiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsIDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsIDAuNykpLCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYig2Myw4MSwxODEpLCByZ2IoNjMsODEsMTgxKSk7XG4gIHotaW5kZXg6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1wcm9ncmVzcyA+IC5hdXhiYXIge1xuICByaWdodDogMDsgfVxuXG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZSkge1xuICAubWRsLXByb2dyZXNzOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKTpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsIDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsIDAuNykpLCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYig2Myw4MSwxODEpLCByZ2IoNjMsODEsMTgxKSk7XG4gICAgbWFzazogdXJsKFwiL2ltYWdlcy9idWZmZXIuc3ZnP2VtYmVkXCIpOyB9IH1cblxuLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpLCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpKSwgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2IoNjMsODEsMTgxKSwgcmdiKDYzLDgxLDE4MSkpOyB9XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjMge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTEge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMjUlO1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTIge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDc1JSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLm1kbC1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgY29sb3I6IHJnYig2Niw2Niw2Nik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0Om5vdCguaXMtc21hbGwtc2NyZWVuKSAubWRsLWxheW91dC0tc21hbGwtc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm1kbC1sYXlvdXRfX3RpdGxlLFxuLm1kbC1sYXlvdXQtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtbGF5b3V0LXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTsgfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMjI0LDIyNCwyMjQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjUwLDI1MCwyNTApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgY29sb3I6IHJnYig2Niw2Niw2Nik7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiA1OyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIuaXMtdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci5pcy12aXNpYmxlIH4gLm1kbC1sYXlvdXRfX2NvbnRlbnQubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAqIHtcbiAgICBmbGV4LXNocmluazogMDsgfVxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXQtdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciA+IC5tZGwtbGF5b3V0X190aXRsZSxcbiAgICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAubWRsLWxheW91dC10aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfVxuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uIC5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgcGFkZGluZzogMTZweCA0MHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6ICM3NTc1NzU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTZweDsgfSB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpOyB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmstLWN1cnJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDApO1xuICAgICAgICBjb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gLm1kbC1sYXlvdXRfX2RyYXdlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDQ4cHg7XG4gIGJvcmRlcjogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAxMHB4IDEycHg7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gIHotaW5kZXg6IDQ7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAgIC5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgICBtYXJnaW46IDRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDY0cHg7XG4gIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgei1pbmRleDogMztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBib3gtc2hhZG93OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgbWluLWhlaWdodDogNTZweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIuaXMtdXBncmFkZWQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pID4gLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0MHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0MHB4O1xuICAgIHRvcDogMTZweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyID4gLm1kbC1sYXlvdXQtaWNvbiB7XG4gICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgIHRvcDogMTJweDsgfSB9XG4gIC5tZGwtbGF5b3V0Lmhhcy1kcmF3ZXIgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0IHtcbiAgICBtYXgtaGVpZ2h0OiA2NHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3Qge1xuICAgICAgICBtYXgtaGVpZ2h0OiA1NnB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0Lmhhcy10YWJzIHtcbiAgICBoZWlnaHQ6IDExMnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3QuaGFzLXRhYnMge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1oZWFkZXIgPiAubWRsLWxheW91dF9faGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudC5tZGwtbGF5b3V0X19oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwge1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19oZWFkZXItLXdhdGVyZmFsbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLmlzLWNhc3Rpbmctc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogNjRweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDQwcHggMCA4MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICAgIGhlaWdodDogNTZweDtcbiAgICAgIHBhZGRpbmc6IDAgMTZweCAwIDcycHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyA+ICoge1xuICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXItLXNjcm9sbCAubWRsLWxheW91dF9faGVhZGVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgICBoZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmc6IDAgMjRweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDsgfSB9XG5cbi5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yLmlzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgLW1zLWZsZXg6IDAgMSBhdXRvO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZmxleC1ncm93OiAxO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMjQwcHg7IH1cbiAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOyB9IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICBoZWlnaHQ6IDk2cHg7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDExMnB4KTtcbiAgcGFkZGluZzogMCAwIDAgNTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsOyB9XG4gIC5tZGwtbGF5b3V0X190YWItYmFyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubWRsLWxheW91dF9fdGFiLWJhciB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgICBwYWRkaW5nOiAwIDAgMCA2MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiAyO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19jb250YWluZXIgPiAubWRsLWxheW91dF9fdGFiLWJhci1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHdpZHRoOiA1NnB4O1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2Myw4MSwxODEpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB3aWR0aDogNjBweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24gLm1hdGVyaWFsLWljb25zIHtcbiAgICBsaW5lLWhlaWdodDogNDhweDsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24uaXMtYWN0aXZlIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbiB7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9uIHtcbiAgcmlnaHQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgICBwYWRkaW5nOiAwIDEycHggMCAxMnB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkIC5tZGwtbGF5b3V0X190YWIuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYigyNTUsNjQsMTI5KTtcbiAgICBhbmltYXRpb246IGJvcmRlci1leHBhbmQgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cbiAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgLm1kbC1sYXlvdXRfX3RhYiAubWRsLWxheW91dF9fdGFiLXJpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi1wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVsLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXJhZGlvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZGwtcmFkaW8uaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLXJhZGlvX19idXR0b24ge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLXJhZGlvLmlzLXVwZ3JhZGVkIC5tZGwtcmFkaW9fX2J1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLXJhZGlvLmlzLWNoZWNrZWQgLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoNjMsODEsMTgxKTsgfVxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDhweDtcbiAgbGVmdDogNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI4cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiBzY2FsZTNkKDAsIDAsIDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtcmFkaW8uaXMtY2hlY2tlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsgfVxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5tZGwtcmFkaW8uaXMtZm9jdXNlZCAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1yYWRpb19fbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC05cHg7XG4gIGxlZnQ6IC0xM3B4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuXzotbXMtaW5wdXQtcGxhY2Vob2xkZXIsIDpyb290IC5tZGwtc2xpZGVyLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQge1xuICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1zbGlkZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIG1hcmdpbjogMCAyMHB4OyB9XG4gIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIG91dGxpbmU6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRyYWNrcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRodW1icyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIDAtdmFsdWUgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBEaXNhYmxlZCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgICAgYm9yZGVyOiAwOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy10b29sdGlwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDE2cHgsIHJnYig2Myw4MSwxODEpIDE2cHgsIHJnYig2Myw4MSwxODEpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDE2cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDE2cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJvcmRlciAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBib3gtc2hhZG93IDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLXRodW1iIHtcbiAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDYzLDgxLDE4MSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMzc1KTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLCBiYWNrZ3JvdW5kIDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgcmdiKDYzLDgxLDE4MSkgMCUsIHJnYig2Myw4MSwxODEpIDM3LjUlLCByZ2JhKDYzLDgxLDE4MSwgMC4yNikgMzcuNSUsIHJnYmEoNjMsODEsMTgxLCAwLjI2KSAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC41NjI1KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4xMik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgwLDAsMCwgMC4xMik7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjEyKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS42cHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA5cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS41cHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDY2LjY3JSwgcmdiYSgwLDAsMCwgMC4yNikgNjYuNjclLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgcmdiYSgwLDAsMCwgMC4xMikgMCUsIHJnYmEoMCwwLDAsIDAuMTIpIDI1JSwgcmdiYSgwLDAsMCwgMC4yNikgMjUlLCByZ2JhKDAsMCwwLCAwLjI2KSAzNy41JSwgcmdiYSgwLDAsMCwgMC4xMikgMzcuNSUsIHJnYmEoMCwwLDAsIDAuMTIpIDEwMCUpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDc3Ljc4JSwgcmdiYSgwLDAsMCwgMC4yNikgNzcuNzglLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogOXB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotbW96LXJhbmdlLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZCArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBsZWZ0OiAtNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmUgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmFjdGl2ZTo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDo6LW1zLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSwgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgwLDAsMCwgMC4yNikgNTAlLCByZ2JhKDAsMCwwLCAwLjI2KSAxMDAlKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDI1cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDI1cHgsIHJnYmEoMCwwLDAsIDAuMjYpIDApOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4OyB9XG5cbi5tZGwtc2xpZGVyX19pZS1jb250YWluZXIge1xuICBoZWlnaHQ6IDE4cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogbm9uZTtcbiAgcGFkZGluZzogbm9uZTsgfVxuXG4ubWRsLXNsaWRlcl9fY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMnB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gNTJweCk7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IDAgMjZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMXB4KTsgfVxuXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1sb3dlciB7XG4gIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICBmbGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBmbGV4OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjE4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBUT09MVElQICovXG4ubWRsLXNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDsgfVxuICAubWRsLXNwaW5uZXI6bm90KC5pcy11cGdyYWRlZCkuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIkxvYWRpbmcuLi5cIjsgfVxuICAubWRsLXNwaW5uZXIuaXMtdXBncmFkZWQuaXMtYWN0aXZlIHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIDE1NjguMjM1MjltcyBsaW5lYXIgaW5maW5pdGU7IH1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZSB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuLm1kbC1zcGlubmVyX19sYXllciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3BhY2l0eTogMDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICBib3JkZXItY29sb3I6IHJnYig2NiwxNjUsMjQ1KTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMiB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI0NCw2Nyw1NCk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICBib3JkZXItY29sb3I6IHJnYigyNTMsMjE2LDUzKTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDYzLDgxLDE4MSk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTMge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMy1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItNCB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDc2LDE3NSw4MCk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgICBib3JkZXItY29sb3I6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgMzcuNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpOyB9XG4gIDYyLjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpOyB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTsgfVxuICA4Ny41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7IH0gfVxuXG4vKipcbiogSEFDSzogRXZlbiB0aG91Z2ggdGhlIGludGVudGlvbiBpcyB0byBoYXZlIHRoZSBjdXJyZW50IC5tZGwtc3Bpbm5lcl9fbGF5ZXItTlxuKiBhdCBgb3BhY2l0eTogMWAsIHdlIHNldCBpdCB0byBgb3BhY2l0eTogMC45OWAgaW5zdGVhZCBzaW5jZSB0aGlzIGZvcmNlcyBDaHJvbWVcbiogdG8gZG8gcHJvcGVyIHN1YnBpeGVsIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIGFuaW1hdGVkLiBUaGlzIGlzXG4qIGVzcGVjaWFsbHkgdmlzaWJsZSBpbiBDaHJvbWUgMzkgb24gVWJ1bnR1IDE0LjA0LiBTZWU6XG4qXG4qIC0gaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGFwZXItc3Bpbm5lci9pc3N1ZXMvOVxuKiAtIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00MzYyNTVcbiovXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMjYlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDg5JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKipcbiogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnRcbiogZGl2Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUgc3Bpbm5lciBpcyByb3RhdGluZ1xuKiAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4qXG4qIFVwZGF0ZTogdGhlIGdhcCBubyBsb25nZXIgYXBwZWFycyBvbiBDaHJvbWUgd2hlbiAubWRsLXNwaW5uZXJfX2xheWVyLU4nc1xuKiBvcGFjaXR5IGlzIDAuOTksIGJ1dCBzdGlsbCBkb2VzIG9uIFNhZmFyaSBhbmQgSUUuXG4qL1xuLm1kbC1zcGlubmVyX19nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgfVxuICAubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDEwMDAlO1xuICAgIGxlZnQ6IC00NTAlOyB9XG5cbi5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cbiAgLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDIwMCU7IH1cblxuLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci13aWR0aDogM3B4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDsgfVxuICAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpOyB9XG4gICAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xlZnQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fbGVmdC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cbiAgLm1kbC1zcGlubmVyX19yaWdodCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7IH1cbiAgICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fcmlnaHQgLm1kbC1zcGlubmVyX19jaXJjbGUge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAxMzMzbXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xlZnQtc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEzMGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19yaWdodC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi5tZGwtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRsLXN3aXRjaC5pcy11cGdyYWRlZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4OyB9XG5cbi5tZGwtc3dpdGNoX19pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtc3dpdGNoLmlzLXVwZ3JhZGVkIC5tZGwtc3dpdGNoX19pbnB1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1zd2l0Y2hfX3RyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiA1cHg7XG4gIGhlaWdodDogMTRweDtcbiAgd2lkdGg6IDM2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX190cmFjayB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2Myw4MSwxODEsIDAuNSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3RyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1zd2l0Y2hfX3RodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiKDI1MCwyNTAsMjUwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDJweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICB3aWR0aDogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4yOHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgLm1kbC1zd2l0Y2hfX3RodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYigxODksMTg5LDE4OSk7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC00cHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWZvY3VzZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMjBweCByZ2JhKDYzLDgxLDE4MSwgMC4yNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2Myw4MSwxODEsIDAuMjYpOyB9XG5cbi5tZGwtc3dpdGNoX19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7XG4gIGxlZnQ6IDI0cHg7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDE4OSwxODksMTg5KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLTEycHg7XG4gIGxlZnQ6IC0xNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiA0OHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNDBzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcC1lbmQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7IH1cbiAgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpOyB9XG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBsZWZ0OiAycHg7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi5tZGwtdGFicyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLXRhYnNfX3RhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLXRhYnNfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHJlZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAubWRsLXRhYnNfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTsgfVxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX190YWIuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYig2Myw4MSwxODEpO1xuICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuNCwgMSkgMC4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzO1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuICAubWRsLXRhYnNfX3RhYiAubWRsLXRhYnNfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIC5tZGwtdGFic19fdGFiIC5tZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoNjMsODEsMTgxKTsgfVxuXG4ubWRsLXRhYnNfX3BhbmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkIC5tZGwtdGFic19fcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG5Aa2V5ZnJhbWVzIGJvcmRlci1leHBhbmQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMDsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXRleHRmaWVsZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHggMDsgfVxuICAubWRsLXRleHRmaWVsZCAubWRsLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMjBweDsgfVxuXG4ubWRsLXRleHRmaWVsZC0tYWxpZ24tcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4ubWRsLXRleHRmaWVsZC0tZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5tZGwtdGV4dGZpZWxkLS1leHBhbmRhYmxlIHtcbiAgbWluLXdpZHRoOiAzMnB4O1xuICB3aWR0aDogYXV0bztcbiAgbWluLWhlaWdodDogMzJweDsgfVxuXG4ubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBvdXRsaW5lOiBub25lOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBib3JkZXItY29sb3I6IHJnYigyMjIsIDUwLCAzOCk7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1kaXNhYmxlZCAubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgcmdiYSgwLDAsMCwgMC4xMik7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtdGV4dGZpZWxkIHRleHRhcmVhLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgYm90dG9tOiAwO1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6IDI0cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbCAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQuaXMtZGlzYWJsZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsLFxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDYzLDgxLDE4MSk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogNHB4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIHRvcDogLTE2cHg7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDIyMiwgNTAsIDM4KTtcbiAgICBmb250LXNpemU6IDEycHg7IH1cbiAgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKTtcbiAgICBib3R0b206IDIwcHg7XG4gICAgY29udGVudDogJyc7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgbGVmdDogNDUlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWR0aDogMTBweDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgbGVmdDogMDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIyLCA1MCwgMzgpOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19lcnJvciB7XG4gIGNvbG9yOiByZ2IoMjIyLCA1MCwgMzgpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2Vycm9yIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMzJweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAwLjFweDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciwgLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC10b29sdGlwIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LDk3LDk3LCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIG1heC13aWR0aDogMTcwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtNTAwcHg7XG4gIGxlZnQ6IC01MDBweDtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm1kbC10b29sdGlwLmlzLWFjdGl2ZSB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgZm9yd2FyZHM7IH1cblxuLm1kbC10b29sdGlwLS1sYXJnZSB7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIFRPT0xUSVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4ubWRsLXNoYWRvdy0tMmRwIHtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG5cbi5tZGwtc2hhZG93LS0zZHAge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDhweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS04ZHAge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLypcbiogTk9URTogU29tZSBydWxlcyBoZXJlIGFyZSBhcHBsaWVkIHVzaW5nIGR1cGxpY2F0ZSBzZWxlY3RvcnMuXG4qIFRoaXMgaXMgb24gcHVycG9zZSB0byBpbmNyZWFzZSB0aGVpciBzcGVjaWZpY2l0eSB3aGVuIGFwcGxpZWQuXG4qIEZvciBleGFtcGxlOiBgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmVgXG4qL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogVE9PTFRJUCAqL1xuLm1kbC1ncmlkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcge1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLm1kbC1jZWxsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLWNlbGwtLXRvcCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cblxuLm1kbC1jZWxsLS1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cblxuLm1kbC1jZWxsLS1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4ubWRsLWNlbGwtLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDc5cHgpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7IH1cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46IDhweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLXBob25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtcGhvbmUubWRsLWNlbGwtLTItY29sLXBob25lIHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLWNvbC1waG9uZS5tZGwtY2VsbC0tMi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLXBob25lLm1kbC1jZWxsLS0zLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1jb2wtcGhvbmUubWRsLWNlbGwtLTMtY29sLXBob25lIHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS00LWNvbCxcbiAgLm1kbC1jZWxsLS00LWNvbC1waG9uZS5tZGwtY2VsbC0tNC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS00LWNvbC1waG9uZS5tZGwtY2VsbC0tNC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS01LWNvbCxcbiAgLm1kbC1jZWxsLS01LWNvbC1waG9uZS5tZGwtY2VsbC0tNS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS01LWNvbC1waG9uZS5tZGwtY2VsbC0tNS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS02LWNvbCxcbiAgLm1kbC1jZWxsLS02LWNvbC1waG9uZS5tZGwtY2VsbC0tNi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LWNvbC1waG9uZS5tZGwtY2VsbC0tNi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS03LWNvbCxcbiAgLm1kbC1jZWxsLS03LWNvbC1waG9uZS5tZGwtY2VsbC0tNy1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC1waG9uZS5tZGwtY2VsbC0tNy1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS04LWNvbCxcbiAgLm1kbC1jZWxsLS04LWNvbC1waG9uZS5tZGwtY2VsbC0tOC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS04LWNvbC1waG9uZS5tZGwtY2VsbC0tOC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS05LWNvbCxcbiAgLm1kbC1jZWxsLS05LWNvbC1waG9uZS5tZGwtY2VsbC0tOS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC1waG9uZS5tZGwtY2VsbC0tOS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLXBob25lLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTAtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTAtY29sLXBob25lLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMS1jb2wsXG4gIC5tZGwtY2VsbC0tMTEtY29sLXBob25lLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLXBob25lLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMi1jb2wsXG4gIC5tZGwtY2VsbC0tMTItY29sLXBob25lLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLXBob25lLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA4MzlweCkge1xuICAubWRsLWdyaWQge1xuICAgIHBhZGRpbmc6IDhweDsgfVxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogOHB4O1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5tZGwtY2VsbC0tMS1jb2wsXG4gIC5tZGwtY2VsbC0tMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEyLjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEyLjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0yLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0yLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTItY29sLXRhYmxldC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1kbC1jZWxsLS0zLWNvbCxcbiAgLm1kbC1jZWxsLS0zLWNvbC10YWJsZXQubWRsLWNlbGwtLTMtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMzcuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLWNvbC10YWJsZXQubWRsLWNlbGwtLTMtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMzcuNSU7IH1cbiAgLm1kbC1jZWxsLS00LWNvbCxcbiAgLm1kbC1jZWxsLS00LWNvbC10YWJsZXQubWRsLWNlbGwtLTQtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtdGFibGV0Lm1kbC1jZWxsLS00LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLTUtY29sLFxuICAubWRsLWNlbGwtLTUtY29sLXRhYmxldC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg2Mi41JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLXRhYmxldC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiA2Mi41JTsgfVxuICAubWRsLWNlbGwtLTYtY29sLFxuICAubWRsLWNlbGwtLTYtY29sLXRhYmxldC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LWNvbC10YWJsZXQubWRsLWNlbGwtLTYtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtdGFibGV0Lm1kbC1jZWxsLS03LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDg3LjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1jb2wtdGFibGV0Lm1kbC1jZWxsLS03LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDg3LjUlOyB9XG4gIC5tZGwtY2VsbC0tOC1jb2wsXG4gIC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0Lm1kbC1jZWxsLS04LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS04LWNvbC10YWJsZXQubWRsLWNlbGwtLTgtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTktY29sLFxuICAubWRsLWNlbGwtLTktY29sLXRhYmxldC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTktY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0Lm1kbC1jZWxsLS05LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLXRhYmxldC5tZGwtY2VsbC0tMTAtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC10YWJsZXQubWRsLWNlbGwtLTExLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMi1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEyLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODQwcHgpIHtcbiAgLm1kbC1ncmlkIHtcbiAgICBwYWRkaW5nOiA4cHg7IH1cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46IDhweDtcbiAgICB3aWR0aDogY2FsYygzMy4zMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0taGlkZS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg4LjMzMzMzJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDguMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tMy1jb2wsXG4gIC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMy1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1jb2wsXG4gIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tNS1jb2wsXG4gIC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNDEuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tOC1jb2wsXG4gIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNjYuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tOS1jb2wsXG4gIC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNzUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTktY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNzUlOyB9XG4gIC5tZGwtY2VsbC0tMTAtY29sLFxuICAubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoODMuMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEwLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTExLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tMTItY29sLFxuICAubWRsLWNlbGwtLTEyLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4ubWQtZmFiLWJvdHRvbS1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgei1pbmRleDogNDk7IH1cblxubWQtY2FyZCBoMSwgbWQtY2FyZCBoMiwgbWQtY2FyZCBoMywgbWQtY2FyZCBoNCwgbWQtY2FyZCBoNSwgbWQtY2FyZCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxubWQtY2FyZCBtZC10b29sYmFyIHtcbiAgbWluLWhlaWdodDogNTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAwOyB9XG4gIG1kLWNhcmQgbWQtdG9vbGJhciAubWQtdG9vbGJhci10b29scyB7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG1heC1oZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgbWQtY2FyZCBtZC10b29sYmFyIC5tZC10b29sYmFyLXRvb2xzLCBtZC1jYXJkIG1kLXRvb2xiYXIgbWQtaWNvbiB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDsgfVxuXG4uY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgfVxuICAuY2FyZC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDk2cHg7IH1cbiAgICAuY2FyZC1pY29uIG1kLWljb24ge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY0NmI3NTtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyOiA4cHggZG91YmxlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gIC5jYXJkLWluZm9fX3ZhbHVlIHtcbiAgICBjb2xvcjogIzI3MzE0MCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNhcmQtaW5mb19fbmFtZSB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4OyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2FyZC1pbmZvIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH0gfVxuXG4uZHRwID4gLmR0cC1jb250ZW50ID4gLmR0cC1kYXRlLXZpZXcgPiBoZWFkZXIuZHRwLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzMxNDA7IH1cblxuLmR0cCBkaXYuZHRwLWRhdGUsXG4uZHRwIGRpdi5kdHAtdGltZSxcbi5kdHAgLmR0cC1hY3R1YWwtbWVyaWRpZW4gYS5zZWxlY3RlZCxcbi5kdHAgLmR0cC1waWNrZXItdGltZSA+IGEuZHRwLXNlbGVjdC1ob3VyLnNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNkNDY1MzsgfVxuXG4uZHRwIC5wMTAgPiBhLFxuLmR0cCAuZHRwLWhhbmQub24sXG4uZHRwIHRhYmxlLmR0cC1waWNrZXItZGF5cyB0ciA+IHRkID4gYS5zZWxlY3RlZCxcbi5kdHAgLmR0cC1waWNrZXItdGltZSA+IGEuZHRwLXNlbGVjdC1taW51dGUuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2Q0NjUzOyB9XG5cbi5kdHAgZGl2LmR0cC1hY3R1YWwteWVhcixcbi5kdHAgZGl2LmR0cC15ZWFyLWJ0biB7XG4gIGNvbG9yOiAjYmRiZGJkOyB9XG5cbi5kdHAgLmR0cC1waWNrZXItbW9udGgge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlY2VkZWU7XG4gIGNvbG9yOiAjM2Q0NjUzOyB9XG5cbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dFtkaXNhYmxlZF0sXG5tZC1pbnB1dC1jb250YWluZXIgLm1kLWlucHV0W2Rpc2FibGVkXSxcbm1kLWlucHV0LWNvbnRhaW5lci5tZC1kZWZhdWx0LXRoZW1lIC5tZC1pbnB1dCBbZGlzYWJsZWRdLFxubWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dCBbZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsgfVxuXG5oZWFkZXIge1xuICB6LWluZGV4OiA2MDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgaGVhZGVyIG1kLXRvb2xiYXIgLm1kLWJ1dHRvbi5tZC1pY29uLWJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwOyB9IH1cblxubWQtY29udGVudCB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTsgfVxuXG5tZC1zZWxlY3QtbWVudSBtZC1jb250ZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuICBtZC1zZWxlY3QtbWVudSBtZC1jb250ZW50IG1kLW9wdGlvbjpob3ZlciwgbWQtc2VsZWN0LW1lbnUgbWQtY29udGVudCBtZC1vcHRpb246Zm9jdXMge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMyAhaW1wb3J0YW50OyB9XG5cbm1kLXRvb2xiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMTQwICFpbXBvcnRhbnQ7IH1cblxuLm1kLWNvbnRlbnQtc3ViaGVhZGVyIHtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMztcbiAgY29sb3I6ICM0MjQyNDI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDsgfVxuXG5tZC1jaGVja2JveC5tZC1jaGVja2VkIC5tZC1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEwODBmMjsgfVxuICBtZC1jaGVja2JveC5tZC1jaGVja2VkIC5tZC1pY29uOjphZnRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmZmZmOyB9XG5cbm1kLXRvb2x0aXAge1xuICBmb250LXNpemU6IDE0cHg7IH1cblxuLmZhYi1jbG9zZWQtaWNvbiwgLmZhYi1vcGVuLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTdweDtcbiAgbGVmdDogMTZweDtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlLWluLW91dDtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuXG4uZmFiLW9wZW4taWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7IH1cblxuLm1kLWlzLW9wZW4gLmZhYi1jbG9zZWQtaWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7IH1cblxuLm1kLWlzLW9wZW4gLmZhYi1vcGVuLWljb24ge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG5cbm1kLW1lbnUtY29udGVudCAubWQtYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMDsgfVxuICBtZC1tZW51LWNvbnRlbnQgLm1kLWJ1dHRvbjpob3ZlciwgbWQtbWVudS1jb250ZW50IC5tZC1idXR0b246Zm9jdXMge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMyAhaW1wb3J0YW50OyB9XG4gIG1kLW1lbnUtY29udGVudCAubWQtYnV0dG9uOmFjdGl2ZSB7XG4gICAgY29sb3I6ICMzZDQ2NTMgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNmNiOyB9XG5cbm1kLXRhYnMge1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JkYmRiZDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuICBtZC10YWJzOm5vdCgubWQtbm8tdGFiLWNvbnRlbnQpOm5vdCgubWQtZHluYW1pYy1oZWlnaHQpIHtcbiAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7IH1cbiAgbWQtdGFicyBtZC1pbmstYmFyIHtcbiAgICBjb2xvcjogIzEwODBmMiAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICMxMDgwZjIgIWltcG9ydGFudDsgfVxuICBtZC10YWJzIG1kLXRhYi1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZGVlO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYmRiZGJkOyB9XG4gIG1kLXRhYnMgbWQtaWNvbiB7XG4gICAgY29sb3I6ICM3NTc1NzU7IH1cbiAgbWQtdGFicyAubWQtdGFiIHtcbiAgICBjb2xvcjogIzc1NzU3NSAhaW1wb3J0YW50OyB9XG4gICAgbWQtdGFicyAubWQtdGFiLm1kLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzEwODBmMiAhaW1wb3J0YW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgbWQtdGFicyB7XG4gICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7IH0gfVxuXG4ubWQtdGFiLWludGVydmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiZGJkYmQ7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCBkaXYgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgICAubWQtdGFiLWludGVydmFsIGRpdiA+ICo6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4OyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgI3F1aWNrSW50ZXJ2YWwge1xuICAgIG1pbi13aWR0aDogMTIwcHg7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCAjcGVyaW9kSW50ZXJ2YWwge1xuICAgIG1pbi13aWR0aDogMTYwcHg7IH1cbiAgLm1kLXRhYi1pbnRlcnZhbCAubWQtY29udGVudC10aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgbWQtaW5wdXQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLm1kLXRhYi1pbnRlcnZhbCBtZC1pbnB1dC1jb250YWluZXIgLm1kLWVycm9ycy1zcGFjZXIge1xuICAgICAgbWluLWhlaWdodDogOHB4OyB9XG4gIC5tZC10YWItaW50ZXJ2YWwgb2wsIC5tZC10YWItaW50ZXJ2YWwgdWwge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5tZC10YWItaW50ZXJ2YWwgb2wgbGksIC5tZC10YWItaW50ZXJ2YWwgdWwgbGkge1xuICAgICAgcGFkZGluZzogMnB4IDhweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIGNvbG9yOiAjNDI0MjQyO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICAgICAgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTpob3ZlciwgLm1kLXRhYi1pbnRlcnZhbCB1bCBsaTpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTpob3ZlciwgLm1kLXRhYi1pbnRlcnZhbCBvbCBsaTphY3RpdmUsIC5tZC10YWItaW50ZXJ2YWwgb2wgbGk6Zm9jdXMsIC5tZC10YWItaW50ZXJ2YWwgdWwgbGk6aG92ZXIsIC5tZC10YWItaW50ZXJ2YWwgdWwgbGk6YWN0aXZlLCAubWQtdGFiLWludGVydmFsIHVsIGxpOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMDgwZjI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgfVxuXG4uc3ViaGVhZGVyLXBlcmlvZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjM7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmRiZGJkOyB9XG4gIC5zdWJoZWFkZXItcGVyaW9kIC5tZC1zdWJoZWFkZXItaW5uZXIge1xuICAgIHBhZGRpbmc6IDAgMzJweCAwIDE2cHg7IH1cbiAgLnN1YmhlYWRlci1wZXJpb2QgLnN1YmhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6ICM3NTc1NzU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgLnN1YmhlYWRlci1wZXJpb2QgYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5zdWJoZWFkZXItcGVyaW9kIG1kLWlucHV0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgIC5zdWJoZWFkZXItcGVyaW9kIG1kLWlucHV0LWNvbnRhaW5lciAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICBtaW4taGVpZ2h0OiAwOyB9XG5cbiNzZWVrZXJTdW1tYXJ5IG1kLXBhZ2luYXRpb24td3JhcHBlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuI3NlZWtlckNvbXBhcmF0aXZlIG1kLXBhZ2luYXRpb24td3JhcHBlciB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxubWQtc2lkZW5hdiBtZC1jb250ZW50LCBtZC1zaWRlbmF2IG1kLWNvbnRlbnQgLm1kLXN1YmhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbm1kLXNpZGVuYXYgbWQtZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4OyB9XG5cbm1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtIG1kLWljb24ge1xuICBtYXJnaW46IDAgOHB4IDAgMDsgfVxuXG5tZC1zaWRlbmF2IG1kLWxpc3QtaXRlbSAubWQtbGlzdC1pdGVtLWlubmVyIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiAgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW0gLm1kLWxpc3QtaXRlbS1pbm5lciBtZC1pY29uIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG5cbm1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmFjdGl2ZSwgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW06Zm9jdXMsIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZTBlMztcbiAgY29sb3I6ICMzZDQ2NTM7IH1cbiAgbWQtc2lkZW5hdiBtZC1saXN0LWl0ZW06YWN0aXZlIG1kLWljb24sIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmZvY3VzIG1kLWljb24sIG1kLXNpZGVuYXYgbWQtbGlzdC1pdGVtOmhvdmVyIG1kLWljb24ge1xuICAgIGNvbG9yOiAjM2Q0NjUzICFpbXBvcnRhbnQ7IH1cblxubWQtc2lkZW5hdiAubWQtYXZhdGFyIHtcbiAgaGVpZ2h0OiA2NHB4O1xuICB3aWR0aDogNjRweDsgfVxuICBtZC1zaWRlbmF2IC5tZC1hdmF0YXIgaW1nIHtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG5cbm1kLXNpZGVuYXYgLnRvb2xiYXItaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9iZy1oZWFkZXIucG5nXCIpO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbiNzaWRlbmF2TWVudSB7XG4gIHdpZHRoOiAyNDBweDtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiBpbmhlcml0OyB9XG4gICNzaWRlbmF2TWVudSBtZC10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGhlaWdodDogMTYwcHg7XG4gICAgbWluLWhlaWdodDogMTYwcHg7XG4gICAgbWF4LWhlaWdodDogMTYwcHg7IH1cbiAgI3NpZGVuYXZNZW51IG1kLWNvbnRlbnQge1xuICAgIGhlaWdodDogaW5oZXJpdDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gICNzaWRlbmF2TWVudSB7XG4gICAgei1pbmRleDogNTg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYmRiZGJkOyB9IH1cblxuI3NpZGVuYXZGaWx0ZXIge1xuICB3aWR0aDogMzIwcHg7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwOyB9XG4gICNzaWRlbmF2RmlsdGVyIG1kLXRhYnMgbWQtdGFiLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cbiAgI3NpZGVuYXZGaWx0ZXIgbWQtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YxZjJmMjsgfVxuICAgICNzaWRlbmF2RmlsdGVyIG1kLWxpc3QtaXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG50aGVhZCB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLnRkLWNvbG9yZWQge1xuICBtYXgtd2lkdGg6IDEwMHB4OyB9XG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG4gIGNvbG9yOiAjM2Q0NjUzO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuc21hbGwge1xuICBvcGFjaXR5OiAuNjsgfVxuXG5hIHtcbiAgY29sb3I6ICMzZDQ2NTM7IH1cbiAgYTpmb2N1cywgYTpob3ZlciwgYTphY3RpdmUge1xuICAgIGNvbG9yOiAjMjczMTQwOyB9XG5cbmh0bWwsIGJvZHkge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uZGlzcGxheS1mbGV4IHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLm5vLW1hcmdpbiB7XG4gIG1hcmdpbjogMDsgfVxuXG4ucGFkZGluZy1zbSB7XG4gIHBhZGRpbmc6IDhweDsgfVxuICAucGFkZGluZy1zbV9fdGIge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDsgfVxuICAucGFkZGluZy1zbV9fcmwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDsgfVxuXG4ucGFkZGluZy1tZCB7XG4gIHBhZGRpbmc6IDE2cHg7IH1cbiAgLnBhZGRpbmctbWRfX3RiIHtcbiAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxuICAucGFkZGluZy1tZF9fcmwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4OyB9XG5cbi5wYWRkaW5nLWxnIHtcbiAgcGFkZGluZzogMzJweDsgfVxuICAucGFkZGluZy1sZ19fdGIge1xuICAgIHBhZGRpbmctdG9wOiAzMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4OyB9XG4gIC5wYWRkaW5nLWxnX19ybCB7XG4gICAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7IH1cblxuLm1hcmdpbi1zbSB7XG4gIG1hcmdpbjogOHB4OyB9XG4gIC5tYXJnaW4tc21fX3RiIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gIC5tYXJnaW4tc21fX3JsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogOHB4OyB9XG5cbi5tYXJnaW4tbWQge1xuICBtYXJnaW46IDE2cHg7IH1cbiAgLm1hcmdpbi1tZF9fdGIge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuICAubWFyZ2luLW1kX19ybCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4OyB9XG5cbi5tYXJnaW4tbGcge1xuICBtYXJnaW46IDMycHg7IH1cbiAgLm1hcmdpbi1sZ19fdGIge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAubWFyZ2luLWxnX19ybCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzMnB4OyB9XG5cbi5tYXJnaW4tYXV0byB7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cblxuLmZsb2F0X19sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmZsb2F0X19yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4udGV4dF9fbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHRfX2NlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGV4dF9fcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4udGV4dF9fbG93ZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuXG4udGV4dF9fdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4udGV4dF9fY2FwaXRhbGl6ZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG5cbi50ZXh0X190aGluIHtcbiAgZm9udC13ZWlnaHQ6IDEwMDsgfVxuXG4udGV4dF9fbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwOyB9XG5cbi50ZXh0X19yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG4udGV4dF9fbWVkaXVtIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDsgfVxuXG4udGV4dF9fYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLnRleHRfX2JsYWNrIHtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG4uYmdfX2xpZ2h0LXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWNlZGVlOyB9XG5cbi5iZ19fbGlnaHQtc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VjZWRlZTsgfVxuXG4uYmdfX2RhcmstcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyNzMxNDA7IH1cblxuLmJnX19kYXJrLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7IH1cblxuLnJpYmJvbiB7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gIC1tb3otZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgaGVpZ2h0OiA1MHZoO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmZDhkYzsgfVxuXG4ubWFpbiB7XG4gIC13ZWJraXQtZmxleC1zaHJpbms6IDA7XG4gIC1tb3otZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogMDtcbiAgbWFyZ2luLXRvcDogLTUwdmg7IH1cblxuLmxvZ28ge1xuICBtYXgtaGVpZ2h0OiAzNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDhweDsgfVxuXG4ubG9naW4ge1xuICB3aWR0aDogNDAwcHg7IH1cblxuLm15LWNoYXJ0IHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDRweCk7XG4gIGJvcmRlci1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLmNvbnRhaW5lci1jaGFydCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5teS1jaGFydCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7IH0gfVxuXG4uZnMtaW5wdXQge1xuICBtYXJnaW46IDRweCAwIDIwcHggMDtcbiAgcGFkZGluZzogMTJweDtcbiAgY29sb3I6ICM0NDQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbiAgYmFja2dyb3VuZDogd2hpdGU7IH1cblxuLmZzLWxhYmVsIHtcbiAgY29sb3I6ICM2NzUxYTI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bzsgfVxuXG4vKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoZSBjb21tZW50IGJlbG93LiBJdCdzIHRoZSBtYXJrZXJzIHVzZWQgYnkgZ3VscC1pbmplY3QgdG8gaW5qZWN0XG4gKiAgYWxsIHlvdXIgc2FzcyBmaWxlcyBhdXRvbWF0aWNhbGx5XG4gKi9cbi5mLWJ1dHRvbiB7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAzMnB4O1xuICBmb250LXNpemU6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZhZmFmYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBNDg5QjtcbiAgYm9yZGVyOiAzcHggc29saWQgIzZBNDg5QjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOyB9XG4gIC5mLWJ1dHRvbjpob3ZlciwgLmYtYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN0U1REFGOyB9XG4gIC5mLWJ1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM4ZjY3Y2E7IH1cblxuZi1idXR0b24uZi1ibG9jayBidXR0b24ge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZi1idXR0b25bZGlzYWJsZWRdIHtcbiAgY29sb3I6IHJnYmEoMjMwLCAyMzAsIDIzMCwgMC43OSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTUxLCAxNDAsIDE2NiwgMC42Nyk7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG5cbi5mLWJ1dHRvbi1saWdodCB7XG4gIGNvbG9yOiAjOTk5O1xuICBib3JkZXI6IDNweCBzb2xpZCAjRDlEOUQ5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuZi1idXR0b24tbGlnaHQ6aG92ZXIsIC5mLWJ1dHRvbi1saWdodDpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuXG4uZi1pbnB1dCB7XG4gIGhlaWdodDogNDZweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMnB0O1xuICBsaW5lLWhlaWdodDogMTdweDtcbiAgY29sb3I6ICM4ODg4ODg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBtaW4td2lkdGg6IDAgLmYtaW5wdXQ7IH1cbiAgLmYtaW5wdXQgOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM1OWM1ZDU7IH1cbiAgLmYtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjYzljOWM5OyB9XG5cbmYtaW5wdXQuZi1ibG9jayAuZi1pbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4uZi1pbnB1dC1ib3JkZXJsZXNzIC5mLWlucHV0IHtcbiAgYm9yZGVyOiAwcHg7IH1cblxuLmYtaW5wdXQtbm8tcGFkZGluZyAuZi1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4uZi1pbnB1dC1uby1sZWZ0LXBhZGRpbmcgLmYtaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLmYtYm94IHtcbiAgd2lkdGg6IDMxN3B4O1xuICBoZWlnaHQ6IDQzMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRDlEOUQ5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9XG5cbi5mLXNlcGFyYXRvciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMjc1cHg7XG4gIGhlaWdodDogNHB4OyB9XG4gIC5mLXNlcGFyYXRvciAuZi1zZXBhcmF0b3ItYmx1ZS0xIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDE2NHB4O1xuICAgIGhlaWdodDogMHB4O1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjNTlDNUQ1OyB9XG4gIC5mLXNlcGFyYXRvciAuZi1zZXBhcmF0b3ItYmx1ZS0yIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMjhweDtcbiAgICBoZWlnaHQ6IDBweDtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzM5OEJDMjsgfVxuICAuZi1zZXBhcmF0b3IgLmYtc2VwYXJhdG9yLXB1cnBsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMDBweDtcbiAgICB3aWR0aDogMTIycHg7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICM2QTQ4OUI7IH1cblxuYS5tZC1idXR0b24ubWQtZGVmYXVsdC10aGVtZS5tZC1wcmltYXJ5Lm1kLXJhaXNlZCwgYS5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1yYWlzZWQsIGEubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1mYWIsIGEubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtZmFiLCAubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1yYWlzZWQsIC5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1yYWlzZWQsIC5tZC1idXR0b24ubWQtZGVmYXVsdC10aGVtZS5tZC1wcmltYXJ5Lm1kLWZhYiwgLm1kLWJ1dHRvbi5tZC1wcmltYXJ5Lm1kLWZhYiB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMTQwICFpbXBvcnRhbnQ7IH1cblxuLnJlc2V0LWVycm9ycyB1bCBsaSB7XG4gIGNvbG9yOiAjZjk3NTc1OyB9XG4iLCIvKipcbiAqICBEbyBub3QgcmVtb3ZlIHRoZSBjb21tZW50cyBiZWxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IHdpcmVkZXAgdG8gaW5qZWN0XG4gKiAgc2FzcyBkZXBlbmRlbmNpZXMgd2hlbiBkZWZpbmVkIGluIHRoZSBib3dlci5qc29uIG9mIHlvdXIgZGVwZW5kZW5jaWVzXG4gKi9cbi8vIGJvd2VyOnNjc3Ncbi8vIGVuZGJvd2VyXG5cbkBpbXBvcnQgJy4uL3N0eWxlL3N0eWxlcy5zY3NzJztcblxuLyoqXG4gKiAgRG8gbm90IHJlbW92ZSB0aGUgY29tbWVudCBiZWxvdy4gSXQncyB0aGUgbWFya2VycyB1c2VkIGJ5IGd1bHAtaW5qZWN0IHRvIGluamVjdFxuICogIGFsbCB5b3VyIHNhc3MgZmlsZXMgYXV0b21hdGljYWxseVxuICovXG4vLyBpbmplY3RvclxuQGltcG9ydCBcImNvbXBvbmVudHMvRkJ1dHRvbi9GQnV0dG9uLnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL0ZJbnB1dC9GSW5wdXQuc2Nzc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvRkJveC9GYm94LnNjc3NcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL0ZTZXBhcmF0b3IvRlNlcGFyYXRvci5zY3NzXCI7XG4vLyBlbmRpbmplY3RvclxuXG5cbmEubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1yYWlzZWQsIGEubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtcmFpc2VkLCBhLm1kLWJ1dHRvbi5tZC1kZWZhdWx0LXRoZW1lLm1kLXByaW1hcnkubWQtZmFiLCBhLm1kLWJ1dHRvbi5tZC1wcmltYXJ5Lm1kLWZhYiwgLm1kLWJ1dHRvbi5tZC1kZWZhdWx0LXRoZW1lLm1kLXByaW1hcnkubWQtcmFpc2VkLCAubWQtYnV0dG9uLm1kLXByaW1hcnkubWQtcmFpc2VkLCAubWQtYnV0dG9uLm1kLWRlZmF1bHQtdGhlbWUubWQtcHJpbWFyeS5tZC1mYWIsIC5tZC1idXR0b24ubWQtcHJpbWFyeS5tZC1mYWIge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3ItYmcgIWltcG9ydGFudDtcbn1cblxuLnJlc2V0LWVycm9ycyB7XG4gICAgICB1bCBsaSB7XG4gICAgICAgICAgICBjb2xvcjogI2Y5NzU3NTtcbiAgICAgIH1cbn1cbiIsImJvZHkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYSAhaW1wb3J0YW50O1xufVxuaHRtbCBib2R5LCBpbnB1dCwgYnV0dG9uLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCB0ZXh0YXJlYSB7XG4gICAgICBmb250LWZhbWlseTogUm9ib3RvLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbn1cblxuLnN1Y2Nlc3MtbWVzc2FnZS1zZW50IHAge1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uc3VjY2Vzcy1tZXNzYWdlLXNlbnQgaDMge1xuICAgICAgY29sb3I6ICM3Nzc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0ICdsb2dpbi1wYWdlLXN0eWxlL2xvZ2luLXBhZ2Utc3R5bGUuc2Nzcyc7XG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uLnNjc3MnO1xuQGltcG9ydCAnLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1jb2xvcnMvZGlzdC9jb2xvcnMuc2Nzcyc7XG5cbi8vIEltcG9ydCBtb2R1bGVzXG5AaW1wb3J0ICdtb2R1bGVzL19hbGwuc2Nzcyc7XG5cbi8vIEltcG9ydCBNYXRlcmlhbCBEZXNpZ24gTGl0ZVxuQGltcG9ydCAnLi4vLi4vYm93ZXJfY29tcG9uZW50cy9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvbWF0ZXJpYWwtZGVzaWduLWxpdGUuc2Nzcyc7XG5cbi8vIEltcG9ydCBwYXJ0aWFsc1xuQGltcG9ydCAncGFydGlhbHMvX2J1dHRvbnMuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fY2FyZC5zY3NzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL19kYXRldGltZXBpY2tlci5zY3NzJztcbkBpbXBvcnQgJ3BhcnRpYWxzL19oZWFkZXIuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fbGF5b3V0LnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX21lbnUuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fc2Vla2VyLnNjc3MnO1xuQGltcG9ydCAncGFydGlhbHMvX3NpZGVuYXYuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fdGFibGUuc2Nzcyc7XG5AaW1wb3J0ICdwYXJ0aWFscy9fdHlwb2dyYXBoeS5zY3NzJztcblxuLy8gSW1wb3J0IGxheW91dCBmcmFnbWVudHNcbkBpbXBvcnQgJ2xheW91dC9fYmFzZS5zY3NzJztcbkBpbXBvcnQgJ2xheW91dC9faGlnaGNoYXJ0X2ZpbGxfcGFyZW50X2lzc3VlX2hhY2suc2Nzcyc7XG4vL0BpbXBvcnQgJ2xheW91dC9faWVfbWF0ZXJpYWxfaGFjay5zY3NzJztcblxuLmZzLWlucHV0IHtcbiAgICAgIG1hcmdpbjogNHB4IDAgMjBweCAwO1xuICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIGNvbG9yOiAjNDQ0O1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggI2NjYztcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuLmZzLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjNjc1MWEyO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90bztcbn1cbiIsIi5ub3RpZmljYXRpb24tZnNlbnNlIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIG1pbi13aWR0aDogNDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggZ3JleTtcblxuICAgICAgYW5pbWF0aW9uLW5hbWU6IG5vdGlmaWNhdGlvbi1lbnRlcjtcbiAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjNzO1xuICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcbn1cbi5ub3RpZmljYXRpb24tbGVhdmUge1xuICAgICAgdG9wOiAtNDBweDtcbiAgICAgIGFuaW1hdGlvbi1uYW1lOiBub3RpZmljYXRpb24tbGVhdmU7XG4gICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG59XG4ubm90aWZpY2F0aW9uLWRlZmF1bHQgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG4ubm90aWZpY2F0aW9uLXByaW1hcnkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OyB9XG4ubm90aWZpY2F0aW9uLXN1Y2Nlc3Mge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzU4Y2U1ODtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbn1cbi5ub3RpZmljYXRpb24td2FybmluZyB7IGJhY2tncm91bmQtY29sb3I6IGdyZXk7IH1cbi5ub3RpZmljYXRpb24tZXJyb3Ige1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjNjQ2NDtcbn1cblxuQGtleWZyYW1lcyBub3RpZmljYXRpb24tZW50ZXIge1xuICAgICAgZnJvbSB7IHRvcDogLTMwcHg7IH1cbiAgICAgIHRvIHsgdG9wOiAwOyB9XG59XG5Aa2V5ZnJhbWVzIG5vdGlmaWNhdGlvbi1sZWF2ZSB7XG4gICAgICBmcm9tIHsgdG9wOiAwcHg7IH1cbiAgICAgIHRvIHsgdG9wOiAtNDBweDsgfVxufVxuIiwiLy8gIGFkZCBtYXRlcmlhbCBpY29ucyBsb2NhbCBmb250XG4vLyBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zXG4vKiBmYWxsYmFjayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL01hdGVyaWFsLUljb25zLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XG59XG5cbi5tYXRlcmlhbC1pY29ucyB7XG4gIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xuICBkaXJlY3Rpb246IGx0cjtcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gIC1tb3otZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qIFJ1bGVzIGZvciBzaXppbmcgdGhlIGljb24uICovXG4ubWF0ZXJpYWwtaWNvbnMubWQtMTggeyBmb250LXNpemU6IDE4cHg7IH1cbi5tYXRlcmlhbC1pY29ucy5tZC0yNCB7IGZvbnQtc2l6ZTogMjRweDsgfVxuLm1hdGVyaWFsLWljb25zLm1kLTM2IHsgZm9udC1zaXplOiAzNnB4OyB9XG4ubWF0ZXJpYWwtaWNvbnMubWQtNDggeyBmb250LXNpemU6IDQ4cHg7IH1cblxuLyogUnVsZXMgZm9yIHVzaW5nIGljb25zIGFzIGJsYWNrIG9uIGEgbGlnaHQgYmFja2dyb3VuZC4gKi9cbi5tYXRlcmlhbC1pY29ucy5tZC1kYXJrIHsgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cbi5tYXRlcmlhbC1pY29ucy5tZC1kYXJrLm1kLWluYWN0aXZlIHsgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cblxuLyogUnVsZXMgZm9yIHVzaW5nIGljb25zIGFzIHdoaXRlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLiAqL1xuLm1hdGVyaWFsLWljb25zLm1kLWxpZ2h0IHsgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7IH1cbi5tYXRlcmlhbC1pY29ucy5tZC1saWdodC5tZC1pbmFjdGl2ZSB7IGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH1cblxuIiwiLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7XG59XG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1MaWdodC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7XG59XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUxpZ2h0LnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTtcbn1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDYwLTA1MkYsIFUrMjBCNCwgVSsyREUwLTJERkYsIFUrQTY0MC1BNjlGO1xufVxuLyogY3lyaWxsaWMgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLVJlZ3VsYXIudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7XG59XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMzcwLTAzRkY7XG59XG4vKiB2aWV0bmFtZXNlICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tUmVndWxhci50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkM2LCBVKzAyREEsIFUrMDJEQywgVSsyMDAwLTIwNkYsIFUrMjA3NCwgVSsyMEFDLCBVKzIyMTIsIFUrMjIxNTtcbn1cbi8qIGN5cmlsbGljLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0MDAtMDQ1RiwgVSswNDkwLTA0OTEsIFUrMDRCMC0wNEIxLCBVKzIxMTY7XG59XG4vKiBncmVlay1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSsxRjAwLTFGRkY7XG59XG4vKiBncmVlayAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNTAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tTWVkaXVtLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAyLTAxMDMsIFUrMUVBMC0xRUY5LCBVKzIwQUI7XG59XG4vKiBsYXRpbi1leHQgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLU1lZGl1bS50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyNEYsIFUrMUUwMC0xRUZGLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQ0YsIFUrMkM2MC0yQzdGLCBVK0E3MjAtQTdGRjtcbn1cbi8qIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1NZWRpdW0udHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1O1xufVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzA0NjAtMDUyRiwgVSsyMEI0LCBVKzJERTAtMkRGRiwgVStBNjQwLUE2OUY7XG59XG4vKiBjeXJpbGxpYyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tQm9sZC50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswNDAwLTA0NUYsIFUrMDQ5MC0wNDkxLCBVKzA0QjAtMDRCMSwgVSsyMTE2O1xufVxuLyogZ3JlZWstZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAzNzAtMDNGRjtcbn1cbi8qIHZpZXRuYW1lc2UgKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMi0wMTAzLCBVKzFFQTAtMUVGOSwgVSsyMEFCO1xufVxuLyogbGF0aW4tZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1Cb2xkLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUJvbGQudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQzYsIFUrMDJEQSwgVSswMkRDLCBVKzIwMDAtMjA2RiwgVSsyMDc0LCBVKzIwQUMsIFUrMjIxMiwgVSsyMjE1O1xufVxuLyogY3lyaWxsaWMtZXh0ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQ2MC0wNTJGLCBVKzIwQjQsIFUrMkRFMC0yREZGLCBVK0E2NDAtQTY5Rjtcbn1cbi8qIGN5cmlsbGljICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDQwMC0wNDVGLCBVKzA0OTAtMDQ5MSwgVSswNEIwLTA0QjEsIFUrMjExNjtcbn1cbi8qIGdyZWVrLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzFGMDAtMUZGRjtcbn1cbi8qIGdyZWVrICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHNyYzogdXJsKC4uL2ZvbnRzL1JvYm90by1JdGFsaWMudHRmKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIHVuaWNvZGUtcmFuZ2U6IFUrMDM3MC0wM0ZGO1xufVxuLyogdmlldG5hbWVzZSAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDItMDEwMywgVSsxRUEwLTFFRjksIFUrMjBBQjtcbn1cbi8qIGxhdGluLWV4dCAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNDAwO1xuICBzcmM6IHVybCguLi9mb250cy9Sb2JvdG8tSXRhbGljLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpO1xuICB1bmljb2RlLXJhbmdlOiBVKzAxMDAtMDI0RiwgVSsxRTAwLTFFRkYsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDRiwgVSsyQzYwLTJDN0YsIFUrQTcyMC1BN0ZGO1xufVxuLyogbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgc3JjOiB1cmwoLi4vZm9udHMvUm9ib3RvLUl0YWxpYy50dGYpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgdW5pY29kZS1yYW5nZTogVSswMDAwLTAwRkYsIFUrMDEzMSwgVSswMTUyLTAxNTMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMjEyLCBVKzIyMTU7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqL1xuXG4vLyBWYXJpYWJsZXMgYW5kIG1peGluc1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4vLyBSZXNldHMgYW5kIGRlcGVuZGVuY2llc1xuQGltcG9ydCBcInJlc2V0cy9yZXNldHNcIjtcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L3R5cG9ncmFwaHlcIjtcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcInBhbGV0dGUvcGFsZXR0ZVwiO1xuQGltcG9ydCBcInJpcHBsZS9yaXBwbGVcIjtcbkBpbXBvcnQgXCJhbmltYXRpb24vYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiYmFkZ2UvYmFkZ2VcIjtcbkBpbXBvcnQgXCJidXR0b24vYnV0dG9uXCI7XG5AaW1wb3J0IFwiY2FyZC9jYXJkXCI7XG5AaW1wb3J0IFwiY2hlY2tib3gvY2hlY2tib3hcIjtcbkBpbXBvcnQgXCJkYXRhLXRhYmxlL2RhdGEtdGFibGVcIjtcbkBpbXBvcnQgXCJmb290ZXIvbWVnYV9mb290ZXJcIjtcbkBpbXBvcnQgXCJmb290ZXIvbWluaV9mb290ZXJcIjtcbkBpbXBvcnQgXCJpY29uLXRvZ2dsZS9pY29uLXRvZ2dsZVwiO1xuQGltcG9ydCBcIm1lbnUvbWVudVwiO1xuQGltcG9ydCBcInByb2dyZXNzL3Byb2dyZXNzXCI7XG5AaW1wb3J0IFwibGF5b3V0L2xheW91dFwiO1xuQGltcG9ydCBcInJhZGlvL3JhZGlvXCI7XG5AaW1wb3J0IFwic2xpZGVyL3NsaWRlclwiO1xuQGltcG9ydCBcInNwaW5uZXIvc3Bpbm5lclwiO1xuQGltcG9ydCBcInN3aXRjaC9zd2l0Y2hcIjtcbkBpbXBvcnQgXCJ0YWJzL3RhYnNcIjtcbkBpbXBvcnQgXCJ0ZXh0ZmllbGQvdGV4dGZpZWxkXCI7XG5AaW1wb3J0IFwidG9vbHRpcC90b29sdGlwXCI7XG5AaW1wb3J0IFwic2hhZG93L3NoYWRvd1wiO1xuQGltcG9ydCBcImdyaWQvZ3JpZFwiO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqL1xuXG5cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cblxuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuJHByZWZlcnJlZF9mb250OiAnUm9ib3RvJywgJ0hlbHZldGljYScsICdBcmlhbCcsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kcGVyZm9ybWFuY2VfZm9udDogJ0hlbHZldGljYScsICdBcmlhbCcsIHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cblxuQGltcG9ydCBcImNvbG9yLWRlZmluaXRpb25zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuJGltYWdlX3BhdGg6ICcvaW1hZ2VzJyAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cblxuLy8gRGVmaW5lIHdoZXRoZXIgaW5kaXZpZHVhbCBjb2xvciBwYWxsZXQgaXRlbXMgc2hvdWxkIGhhdmUgY2xhc3NlcyBjcmVhdGVkLlxuLy8gU2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCByZW1vdmUgaW5kaXZpZHVhbCBjb2xvciBjbGFzc2VzIGZvciBlYWNoIGNvbG9yIGluIHRoZSBwYWxsZXRzLlxuLy8gVG8gaW1wcm92ZSBvdmVyYWxsIHBlcmZvcm1hbmNlIChhc3N1bWluZyB0aGV5IGFyZW4ndCB1c2VkKSBieTpcbi8vICogU2F2aW5nIHNlcnZlciBiYW5kd2lkdGggc2VuZGluZyB0aGUgZXh0cmEgY2xhc3Nlc1xuLy8gKiBTYXZlIGNsaWVudCBjb21wdXRhdGlvbiBhZ2FpbnN0IHRoZSBjbGFzc2VzXG4vLyBpdCBpcyBSRUNPTU1FTkRFRCB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZS5cbiR0cmltLWNvbG9yLWNsYXNzZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBVc2UgY29sb3IgcHJpbWFyaWx5IGZvciBlbXBoYXNpcy4gQ2hvb3NlIGNvbG9ycyB0aGF0IGZpdCB3aXRoXG4vLyB5b3VyIGJyYW5kIGFuZCBwcm92aWRlIGdvb2QgY29udHJhc3QgYmV0d2VlbiB2aXN1YWwgY29tcG9uZW50cy5cbiRjb2xvci1wcmltYXJ5OiAkcGFsZXR0ZS1pbmRpZ28tNTAwICFkZWZhdWx0O1xuJGNvbG9yLXByaW1hcnktZGFyazogJHBhbGV0dGUtaW5kaWdvLTcwMCAhZGVmYXVsdDtcbiRjb2xvci1hY2NlbnQ6ICRwYWxldHRlLXBpbmstQTIwMCAhZGVmYXVsdDtcblxuLy8gT3VyIHByaW1hcnkgaXMgZGFyaywgc28gdXNlICRjb2xvci1kYXJrLWNvbnRyYXN0IGZvciBvdmVybGFpZCB0ZXh0LlxuJGNvbG9yLXByaW1hcnktY29udHJhc3Q6ICRjb2xvci1kYXJrLWNvbnRyYXN0ICFkZWZhdWx0O1xuLy8gT3VyIGFjY2VudCBpcyBkYXJrLCBzbyB1c2UgJGNvbG9yLWRhcmstY29udHJhc3QgZm9yIG92ZXJsYWlkIHRleHQuXG4kY29sb3ItYWNjZW50LWNvbnRyYXN0OiAkY29sb3ItZGFyay1jb250cmFzdCAhZGVmYXVsdDtcblxuLy8gUmVwbGFjZSBhbGwgY29sb3JzIHdpdGggcGxhY2Vob2xkZXJzIGlmIHdlJ3JlIGdlbmVyYXRpbmcgYSB0ZW1wbGF0ZS5cbkBpZiAkc3R5bGVndWlkZS1nZW5lcmF0ZS10ZW1wbGF0ZSA9PSB0cnVlIHtcbiAgJGNvbG9yLXByaW1hcnk6ICckY29sb3ItcHJpbWFyeSc7XG4gICRjb2xvci1wcmltYXJ5LWRhcms6ICckY29sb3ItcHJpbWFyeS1kYXJrJztcbiAgJGNvbG9yLWFjY2VudDogJyRjb2xvci1hY2NlbnQnO1xuICAkY29sb3ItcHJpbWFyeS1jb250cmFzdDogJyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0JztcbiAgJGNvbG9yLWFjY2VudC1jb250cmFzdDogJyRjb2xvci1hY2NlbnQtY29udHJhc3QnO1xufVxuXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG5cbi8vIFdlIHVzZSB0aGUgZm9sbG93aW5nIGRlZmF1bHQgY29sb3Igc3R5bGVzOiB0ZXh0LWNvbG9yLXByaW1hcnkgYW5kXG4vLyB0ZXh0LWNvbG9yLXNlY29uZGFyeS4gRm9yIGxpZ2h0IHRoZW1lcywgdXNlIHRleHQtY29sb3ItcHJpbWFyeS1pbnZlcnNlXG4vLyBhbmQgdGV4dC1jb2xvci1zZWNvbmRhcnktaW52ZXJzZS5cblxuJHRleHQtY29sb3ItcHJpbWFyeTogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjg3KVwiKSAhZGVmYXVsdDtcbiR0ZXh0LWxpbmstY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG5cbi8vIERlZmluZSB3aGV0aGVyIHRvIHRhcmdldCBlbGVtZW50cyBkaXJlY3RseSBmb3IgdHlwb2dyYXBoaWMgZW5oYW5jZW1lbnRzLlxuLy8gVHVybmluZyB0aGlzIG9mZiBtZWFucyB5b3UgbmVlZCB0byB1c2UgbWRsLSogY2xhc3NlcyBtb3JlIG9mdGVuLlxuLy8gT3RoZXIgY29tcG9uZW50cyBtYXkgYWxzbyBmYWlsIHRvIGFkaGVyZSB0byBNRCB3aXRob3V0IHRoZXNlIHJ1bGVzLlxuLy8gSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgeW91IGxlYXZlIHRoaXMgYXMgdHJ1ZS5cblxuJHRhcmdldC1lbGVtZW50cy1kaXJlY3RseTogdHJ1ZSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG5cbi8vIERlZmF1bHQgYnV0dG9uIGNvbG9ycy5cbiRidXR0b24tcHJpbWFyeS1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skcGFsZXR0ZS1ncmV5LTUwMH0sIDAuMjApXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1zZWNvbmRhcnktY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYmxhY2t9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24taG92ZXItY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcbiRidXR0b24tYWN0aXZlLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRwYWxldHRlLWdyZXktNTAwfSwgMC40MClcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZvY3VzLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMTIpXCIpICFkZWZhdWx0O1xuXG4vLyBDb2xvcmVkIGJ1dHRvbiBjb2xvcnMuXG4kYnV0dG9uLXByaW1hcnktY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24tc2Vjb25kYXJ5LWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWhvdmVyLWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWFjdGl2ZS1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1mb2N1cy1jb2xvci1hbHQ6ICRidXR0b24tZm9jdXMtY29sb3IgIWRlZmF1bHQ7XG5cbi8vIFJpcHBsZSBjb2xvciBmb3IgY29sb3JlZCByYWlzZWQgYnV0dG9ucy5cbiRidXR0b24tcmlwcGxlLWNvbG9yLWFsdDogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGVkIGJ1dHRvbiBjb2xvcnMuXG4kYnV0dG9uLXByaW1hcnktY29sb3ItZGlzYWJsZWQ6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC4xMilcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLXNlY29uZGFyeS1jb2xvci1kaXNhYmxlZDogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjI2KVwiKSAhZGVmYXVsdDtcblxuLy8gRkFCIGNvbG9ycyBhbmQgc2l6ZXMuXG4kYnV0dG9uLWZhYi1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhYi1ob3Zlci1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhYi1hY3RpdmUtY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFkZWZhdWx0O1xuJGJ1dHRvbi1mYWItdGV4dC1jb2xvci1hbHQ6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhYi1yaXBwbGUtY29sb3ItYWx0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudC1jb250cmFzdH0pXCIpICFkZWZhdWx0O1xuXG4vLyBJY29uIGJ1dHRvbiBjb2xvcnMgYW5kIHNpemVzLlxuJGJ1dHRvbi1pY29uLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS03MDB9KVwiKSAhZGVmYXVsdDtcbiRidXR0b24taWNvbi1mb2N1cy1jb2xvcjogJGJ1dHRvbi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG5cbiRpY29uLXRvZ2dsZS1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNzAwfSlcIikgIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtZm9jdXMtY29sb3I6ICRidXR0b24tZm9jdXMtY29sb3IgIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtY2hlY2tlZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtY2hlY2tlZC1mb2N1cy1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeX0sIDAuMjYpXCIpICFkZWZhdWx0O1xuJGljb24tdG9nZ2xlLWRpc2FibGVkLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG5cbiRyYWRpby1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kcmFkaW8tb2ZmLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuNTQpXCIpICFkZWZhdWx0O1xuJHJhZGlvLWRpc2FibGVkLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG5cbiRyaXBwbGUtYmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItbGlnaHQtY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG5cbiRsYXlvdXQtbmF2LWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcblxuLy8gRHJhd2VyXG4kbGF5b3V0LWRyYXdlci1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTB9KVwiKSAhZGVmYXVsdDtcbiRsYXlvdXQtZHJhd2VyLWJvcmRlci1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMzAwfSlcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTgwMH0pXCIpICFkZWZhdWx0O1xuJGxheW91dC1kcmF3ZXItbmF2aWdhdGlvbi1jb2xvcjogIzc1NzU3NSAhZGVmYXVsdDtcbiRsYXlvdXQtZHJhd2VyLW5hdmlnYXRpb24tbGluay1hY3RpdmUtYmFja2dyb3VuZDogdW5xdW90ZShcInJnYigjeyRjb2xvci1saWdodC1jb250cmFzdH0pXCIpICFkZWZhdWx0O1xuJGxheW91dC1kcmF3ZXItbmF2aWdhdGlvbi1saW5rLWFjdGl2ZS1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMzAwfSlcIikgIWRlZmF1bHQ7XG5cbi8vIEhlYWRlclxuJGxheW91dC1oZWFkZXItYmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJGxheW91dC1oZWFkZXItdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG4kbGF5b3V0LWhlYWRlci1uYXYtaG92ZXItY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JHBhbGV0dGUtZ3JleS03MDB9LCAwLjYpXCIpICFkZWZhdWx0O1xuJGxheW91dC1oZWFkZXItdGFiLXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9LCAwLjYpXCIpICFkZWZhdWx0O1xuXG4vLyBUYWJzXG4kbGF5b3V0LWhlYWRlci10YWItaGlnaGxpZ2h0OiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cblxuJHRhYi1oaWdobGlnaHQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJHRhYi10ZXh0LWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuNTQpXCIpICFkZWZhdWx0O1xuJHRhYi1hY3RpdmUtdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjg3KVwiKSAhZGVmYXVsdDtcbiR0YWItYm9yZGVyLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuXG4kY2hlY2tib3gtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuJGNoZWNrYm94LW9mZi1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjU0KVwiKSAhZGVmYXVsdDtcbiRjaGVja2JveC1kaXNhYmxlZC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjI2KVwiKSAhZGVmYXVsdDtcbiRjaGVja2JveC1mb2N1cy1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeX0sIDAuMjYpXCIpICFkZWZhdWx0O1xuJGNoZWNrYm94LWltYWdlLXBhdGg6ICRpbWFnZV9wYXRoO1xuXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuXG4kc3dpdGNoLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRzd2l0Y2gtZmFkZWQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLXByaW1hcnl9LCAwLjI2KVwiKSAhZGVmYXVsdDtcbiRzd2l0Y2gtdGh1bWItY29sb3I6ICRzd2l0Y2gtY29sb3IgIWRlZmF1bHQ7XG4kc3dpdGNoLXRyYWNrLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1wcmltYXJ5fSwgMC41KVwiKSAhZGVmYXVsdDtcblxuJHN3aXRjaC1vZmYtdGh1bWItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwfSlcIikgIWRlZmF1bHQ7XG4kc3dpdGNoLW9mZi10cmFjay1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjI2KVwiKSAhZGVmYXVsdDtcbiRzd2l0Y2gtZGlzYWJsZWQtdGh1bWItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTQwMH0pXCIpICFkZWZhdWx0O1xuJHN3aXRjaC1kaXNhYmxlZC10cmFjay1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjEyKVwiKSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuXG4kc3Bpbm5lci1jb2xvci0xOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS00MDB9KVwiKSAhZGVmYXVsdDtcbiRzcGlubmVyLWNvbG9yLTI6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtNTAwfSlcIikgIWRlZmF1bHQ7XG4kc3Bpbm5lci1jb2xvci0zOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LTYwMH0pXCIpICFkZWZhdWx0O1xuJHNwaW5uZXItY29sb3ItNDogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTUwMH0pXCIpICFkZWZhdWx0O1xuXG4kc3Bpbm5lci1zaW5nbGUtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuXG4kaW5wdXQtdGV4dC1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuJGlucHV0LXRleHQtYm90dG9tLWJvcmRlci1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItYmxhY2t9LCAwLjEyKVwiKSAhZGVmYXVsdDtcbiRpbnB1dC10ZXh0LWhpZ2hsaWdodC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWRlZmF1bHQ7XG4kaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjogJGlucHV0LXRleHQtYm90dG9tLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC10ZXh0LWRpc2FibGVkLXRleHQtY29sb3I6ICRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LXRleHQtZXJyb3ItY29sb3I6IHVucXVvdGUoXCJyZ2IoMjIyLCA1MCwgMzgpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG5cbiRjYXJkLWJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3Itd2hpdGV9KVwiKSAhZGVmYXVsdDtcbiRjYXJkLXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYmxhY2t9KVwiKSAhZGVmYXVsdDtcbiRjYXJkLWltYWdlLXBsYWNlaG9sZGVyLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFkZWZhdWx0O1xuJGNhcmQtc3VwcG9ydGluZy10ZXh0LXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLWJsYWNrfSwgMC41NClcIikgIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsMC4xKSAhZGVmYXVsdDtcbiRjYXJkLXN1YnRpdGxlLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuNTQpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cblxuJHJhbmdlLWJnLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMjYpXCIpICFkZWZhdWx0O1xuJHJhbmdlLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRyYW5nZS1mYWRlZC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeX0sIDAuMjYpXCIpICFkZWZhdWx0O1xuJHJhbmdlLWJnLWZvY3VzLWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuMTIpXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbiRwcm9ncmVzcy1tYWluLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnl9KVwiKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1zZWNvbmRhcnktY29sb3I6IHVucXVvdGUoXCJyZ2JhKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9LCAwLjcpXCIpICFkZWZhdWx0O1xuJHByb2dyZXNzLWZhbGxiYWNrLWJ1ZmZlci1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skY29sb3ItcHJpbWFyeS1jb250cmFzdH0sIDAuOSlcIikgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtaW1hZ2UtcGF0aDogJGltYWdlX3BhdGg7XG5cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuXG4kbGlzdC1jb250YWluZXItaXRlbS1ib3JkZXItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTMwMH0pXCIpICFkZWZhdWx0O1xuJGxpc3QtY29udGFpbmVyLXZpZXctYmFja2dyb3VuZDogdW5xdW90ZShcInJnYigjeyRjb2xvci13aGl0ZX0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cblxuLy8gRGVmYXVsdCBJdGVtIENvbG9yc1xuJGRlZmF1bHQtaXRlbS10ZXh0LWNvbG9yOiB1bnF1b3RlKFwicmdiYSgjeyRjb2xvci1ibGFja30sIDAuODcpXCIpICFkZWZhdWx0O1xuJGRlZmF1bHQtaXRlbS1vdXRsaW5lLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS00MDB9KVwiKSAhZGVmYXVsdDtcbiRkZWZhdWx0LWl0ZW0taG92ZXItYmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTIwMH0pXCIpICFkZWZhdWx0O1xuJGRlZmF1bHQtaXRlbS1mb2N1cy1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMjAwfSlcIikgIWRlZmF1bHQ7XG4kZGVmYXVsdC1pdGVtLWFjdGl2ZS1iZy1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMzAwfSlcIikgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGVkIEJ1dHRvbiBDb2xvcnNcbiRkaXNhYmxlZC1pdGVtLXRleHQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTQwMH0pXCIpICFkZWZhdWx0O1xuXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cblxuJGRlZmF1bHQtZHJvcGRvd24tYmctY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3Itd2hpdGV9KVwiKSAhZGVmYXVsdDtcblxuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cblxuJHRvb2x0aXAtdGV4dC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci13aGl0ZX0pXCIpICFkZWZhdWx0O1xuJHRvb2x0aXAtYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYmEoI3skcGFsZXR0ZS1ncmV5LTcwMH0sIDAuOSlcIikgIWRlZmF1bHQ7XG5cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuXG4kZm9vdGVyLWJnLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS04MDB9KVwiKSAhZGVmYXVsdDtcbiRmb290ZXItY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwMH0pXCIpICFkZWZhdWx0O1xuJGZvb3Rlci1oZWFkaW5nLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhZGVmYXVsdDtcbiRmb290ZXItYnV0dG9uLWZpbGwtY29sb3I6ICRmb290ZXItY29sb3IgIWRlZmF1bHQ7XG4kZm9vdGVyLXVuZGVybGluZS1jb2xvcjogJGZvb3Rlci1jb2xvciAhZGVmYXVsdDtcblxuXG4vKiBURVhURklFTEQgKi9cblxuJGlucHV0LXRleHQtZm9udC1zaXplOiAxNnB4O1xuJGlucHV0LXRleHQtd2lkdGg6IDEwMCU7XG4kaW5wdXQtdGV4dC1wYWRkaW5nOiA0cHg7XG4kaW5wdXQtdGV4dC1yaXBwbGUtc2l6ZTogMzJweDtcbiRpbnB1dC10ZXh0LXZlcnRpY2FsLXNwYWNpbmc6IDIwcHg7XG5cbiRpbnB1dC10ZXh0LWJ1dHRvbi1zaXplOiAzMnB4O1xuJGlucHV0LXRleHQtZmxvYXRpbmctbGFiZWwtZm9udHNpemU6IDEycHg7XG4kaW5wdXQtdGV4dC1leHBhbmRhYmxlLWljb24tdG9wOiAxNnB4O1xuXG5cbi8qIFNXSVRDSCAqL1xuXG4kc3dpdGNoLWxhYmVsLWZvbnQtc2l6ZTogMTZweDtcbiRzd2l0Y2gtbGFiZWwtaGVpZ2h0OiAyNHB4O1xuJHN3aXRjaC10cmFjay1oZWlnaHQ6IDE0cHg7XG4kc3dpdGNoLXRyYWNrLWxlbmd0aDogMzZweDtcbiRzd2l0Y2gtdGh1bWItc2l6ZTogMjBweDtcbiRzd2l0Y2gtdHJhY2stdG9wOiAoJHN3aXRjaC1sYWJlbC1oZWlnaHQgLSAkc3dpdGNoLXRyYWNrLWhlaWdodCkgLyAyO1xuJHN3aXRjaC10aHVtYi10b3A6ICgkc3dpdGNoLWxhYmVsLWhlaWdodCAtICRzd2l0Y2gtdGh1bWItc2l6ZSkgLyAyO1xuJHN3aXRjaC1yaXBwbGUtc2l6ZTogJHN3aXRjaC1sYWJlbC1oZWlnaHQgKiAyO1xuJHN3aXRjaC1oZWxwZXItc2l6ZTogOHB4O1xuXG4vKiBTUElOTkVSICovXG5cbiRzcGlubmVyLXNpemU6IDI4cHggIWRlZmF1bHQ7XG4kc3Bpbm5lci1zdHJva2Utd2lkdGg6IDNweCAhZGVmYXVsdDtcblxuLy8gQW1vdW50IG9mIGNpcmNsZSB0aGUgYXJjIHRha2VzIHVwLlxuJHNwaW5uZXItYXJjLXNpemU6IDI3MGRlZztcbi8vIFRpbWUgaXQgdGFrZXMgdG8gZXhwYW5kIGFuZCBjb250cmFjdCBhcmMuXG4kc3Bpbm5lci1hcmMtdGltZTogMTMzM21zO1xuLy8gSG93IG11Y2ggdGhlIHN0YXJ0IGxvY2F0aW9uIG9mIHRoZSBhcmMgc2hvdWxkIHJvdGF0ZSBlYWNoIHRpbWUuXG4kc3Bpbm5lci1hcmMtc3RhcnQtcm90OiAyMTZkZWc7XG5cbiRzcGlubmVyLWR1cmF0aW9uOiAzNjAgKiAkc3Bpbm5lci1hcmMtdGltZSAvIChcbiAgICBzdHJpcC11bml0cygkc3Bpbm5lci1hcmMtc3RhcnQtcm90ICsgKDM2MGRlZyAtICRzcGlubmVyLWFyYy1zaXplKSkpO1xuXG5cbi8qIFJBRElPICovXG5cbiRyYWRpby1sYWJlbC1mb250LXNpemU6IDE2cHg7XG4kcmFkaW8tbGFiZWwtaGVpZ2h0OiAyNHB4O1xuJHJhZGlvLWJ1dHRvbi1zaXplOiAxNnB4O1xuJHJhZGlvLWlubmVyLW1hcmdpbjogJHJhZGlvLWJ1dHRvbi1zaXplIC8gNDtcbiRyYWRpby1wYWRkaW5nOiA4cHg7XG4kcmFkaW8tdG9wLW9mZnNldDogKCRyYWRpby1sYWJlbC1oZWlnaHQgLSAkcmFkaW8tYnV0dG9uLXNpemUpIC8gMjtcbiRyYWRpby1yaXBwbGUtc2l6ZTogNDJweDtcblxuXG4vKiBNRU5VICovXG5cbiRtZW51LWV4cGFuZC1kdXJhdGlvbjogMC4zcztcbiRtZW51LWZhZGUtZHVyYXRpb246IDAuMnM7XG5cbi8qIExJU1QgKi9cblxuJGxpc3QtY29udGFpbmVyLWhlaWdodDogNTAwcHg7XG4kbGlzdC1jb250YWluZXItd2lkdGg6IDQwMHB4O1xuJGxpc3QtY29udGFpbmVyLWl0ZW0taGVpZ2h0OiA3MHB4O1xuXG4vKiBMQVlPVVQgKi9cblxuJGxheW91dC1uYXYtbGluay1mb250LXNpemU6IDEzcHg7XG5cbiRsYXlvdXQtZHJhd2VyLW5hcnJvdzogMjQwcHg7XG4kbGF5b3V0LWRyYXdlci13aWRlOiA0NTZweDtcbiRsYXlvdXQtZHJhd2VyLXdpZHRoOiAkbGF5b3V0LWRyYXdlci1uYXJyb3c7XG5cbiRsYXlvdXQtaGVhZGVyLWljb24tc2l6ZTogMzJweDtcbiRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkOiAxMDI0cHg7XG4kbGF5b3V0LWhlYWRlci1pY29uLW1hcmdpbjogMjRweDtcbiRsYXlvdXQtZHJhd2VyLWJ1dHRvbi1tb2JpbGUtc2l6ZTogMzJweDtcbiRsYXlvdXQtZHJhd2VyLWJ1dHRvbi1kZXNrdG9wLXNpemU6IDQ4cHg7XG5cbiRsYXlvdXQtaGVhZGVyLW1vYmlsZS1yb3ctaGVpZ2h0OiA1NnB4O1xuJGxheW91dC1tb2JpbGUtaGVhZGVyLWhlaWdodDogJGxheW91dC1oZWFkZXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4kbGF5b3V0LWhlYWRlci1kZXNrdG9wLXJvdy1oZWlnaHQ6IDY0cHg7XG4kbGF5b3V0LWRlc2t0b3AtaGVhZGVyLWhlaWdodDogJGxheW91dC1oZWFkZXItZGVza3RvcC1yb3ctaGVpZ2h0O1xuXG4kbGF5b3V0LWhlYWRlci1kZXNrdG9wLWJhc2VsaW5lOiA4MHB4O1xuJGxheW91dC1oZWFkZXItbW9iaWxlLWJhc2VsaW5lOiA3MnB4O1xuJGxheW91dC1oZWFkZXItbW9iaWxlLWluZGVudDogMTZweDtcbiRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtaW5kZW50OiA0MHB4O1xuXG4kbGF5b3V0LXRhYi1mb250LXNpemU6IDE0cHg7XG4kbGF5b3V0LXRhYi1iYXItaGVpZ2h0OiA0OHB4O1xuJGxheW91dC10YWItbW9iaWxlLXBhZGRpbmc6IDEycHg7XG4kbGF5b3V0LXRhYi1kZXNrdG9wLXBhZGRpbmc6IDI0cHg7XG4kbGF5b3V0LXRhYi1oaWdobGlnaHQtdGhpY2tuZXNzOiAycHg7XG5cblxuLyogSUNPTiBUT0dHTEUgKi9cblxuJGljb24tdG9nZ2xlLXNpemU6IDMycHggIWRlZmF1bHQ7XG4kaWNvbi10b2dnbGUtZm9udC1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJGljb24tdG9nZ2xlLXJpcHBsZS1zaXplOiAzNnB4ICFkZWZhdWx0O1xuXG4vKiBGT09URVIgKi9cblxuLyptZWdhLWZvb3RlciovXG4kZm9vdGVyLW1pbi1wYWRkaW5nOiAxNnB4ICFkZWZhdWx0O1xuJGZvb3Rlci1wYWRkaW5nLXNpZGVzOiA0MHB4ICFkZWZhdWx0O1xuJGZvb3Rlci1oZWFkaW5nLWZvbnQtc2l6ZTogMTRweCAhZGVmYXVsdDtcbiRmb290ZXItaGVhZGluZy1saW5lLWhlaWdodDogKDEuNyAqICRmb290ZXItaGVhZGluZy1mb250LXNpemUpICFkZWZhdWx0O1xuJGZvb3Rlci1idG4tc2l6ZTogMzZweCAgIWRlZmF1bHQ7XG5cbi8qbWluaS1mb290ZXIqL1xuJHBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG4kZm9vdGVyLWhlYWRpbmctZm9udC1zaXplOiAyNHB4ICFkZWZhdWx0O1xuJGZvb3Rlci1oZWFkaW5nLWxpbmUtaGVpZ2h0OiAoMS41ICogJGZvb3Rlci1oZWFkaW5nLWZvbnQtc2l6ZSkgIWRlZmF1bHQ7XG4kZm9vdGVyLWJ0bi1zaXplOiAzNnB4ICFkZWZhdWx0O1xuXG4vKiBDSEVDS0JPWCAqL1xuXG4kY2hlY2tib3gtbGFiZWwtZm9udC1zaXplOiAxNnB4O1xuJGNoZWNrYm94LWxhYmVsLWhlaWdodDogMjRweDtcbiRjaGVja2JveC1idXR0b24tc2l6ZTogMTZweDtcbiRjaGVja2JveC1pbm5lci1tYXJnaW46IDJweDtcbiRjaGVja2JveC1wYWRkaW5nOiA4cHg7XG4kY2hlY2tib3gtdG9wLW9mZnNldDpcbigkY2hlY2tib3gtbGFiZWwtaGVpZ2h0IC0gJGNoZWNrYm94LWJ1dHRvbi1zaXplIC0gJGNoZWNrYm94LWlubmVyLW1hcmdpbikgLyAyO1xuJGNoZWNrYm94LXJpcHBsZS1zaXplOiAkY2hlY2tib3gtbGFiZWwtaGVpZ2h0ICogMS41O1xuXG4vKiBDQVJEICovXG5cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuJGNhcmQtd2lkdGg6IDMzMHB4ICFkZWZhdWx0O1xuJGNhcmQtaGVpZ2h0OiAyMDBweCAhZGVmYXVsdDtcbiRjYXJkLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLWZvbnQtc2l6ZTogMjRweCAhZGVmYXVsdDtcbiRjYXJkLXN1YnRpdGxlLWZvbnQtc2l6ZTogMTRweCAhZGVmYXVsdDtcbiRjYXJkLWhvcml6b250YWwtcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRjYXJkLXZlcnRpY2FsLXBhZGRpbmc6IDE2cHggIWRlZmF1bHQ7XG5cbiRjYXJkLXRpdGxlLXBlcnNwZWN0aXZlLW9yaWdpbi14OiAxNjVweCAhZGVmYXVsdDtcbiRjYXJkLXRpdGxlLXBlcnNwZWN0aXZlLW9yaWdpbi15OiA1NnB4ICFkZWZhdWx0O1xuXG4kY2FyZC10aXRsZS10cmFuc2Zvcm0tb3JpZ2luLXg6IDE2NXB4ICFkZWZhdWx0O1xuJGNhcmQtdGl0bGUtdHJhbnNmb3JtLW9yaWdpbi15OiA1NnB4ICFkZWZhdWx0O1xuXG4kY2FyZC10aXRsZS10ZXh0LXRyYW5zZm9ybS1vcmlnaW4teDogMTQ5cHggIWRlZmF1bHQ7XG4kY2FyZC10aXRsZS10ZXh0LXRyYW5zZm9ybS1vcmlnaW4teTogNDhweCAhZGVmYXVsdDtcblxuJGNhcmQtc3VwcG9ydGluZy10ZXh0LWZvbnQtc2l6ZTogMTNweCAhZGVmYXVsdDtcbiRjYXJkLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDogMThweCAhZGVmYXVsdDtcblxuJGNhcmQtYWN0aW9ucy1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbiRjYXJkLXRpdGxlLXRleHQtZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRjYXJkLXotaW5kZXg6IDEgIWRlZmF1bHQ7XG5cbi8qIENvdmVyIGltYWdlICovXG4kY2FyZC1jb3Zlci1pbWFnZS1oZWlnaHQ6IDE4NnB4ICFkZWZhdWx0O1xuJGNhcmQtYmFja2dyb3VuZC1pbWFnZS11cmw6ICcnICFkZWZhdWx0O1xuXG5cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuJGJ1dHRvbi1taW4td2lkdGg6IDY0cHggIWRlZmF1bHQ7XG4kYnV0dG9uLWhlaWdodDogMzZweCAhZGVmYXVsdDtcbiRidXR0b24tcGFkZGluZzogMTZweCAhZGVmYXVsdDtcbiRidXR0b24tbWFyZ2luOiA0cHggIWRlZmF1bHQ7XG4kYnV0dG9uLWJvcmRlci1yYWRpdXM6IDJweCAhZGVmYXVsdDtcblxuJGJ1dHRvbi1mYWItc2l6ZTogNTZweCAhZGVmYXVsdDtcbiRidXR0b24tZmFiLXNpemUtbWluaTogNDBweCAhZGVmYXVsdDtcbiRidXR0b24tZmFiLWZvbnQtc2l6ZTogMjRweCAhZGVmYXVsdDtcblxuJGJ1dHRvbi1pY29uLXNpemU6IDMycHggIWRlZmF1bHQ7XG4kYnV0dG9uLWljb24tc2l6ZS1taW5pOiAyNHB4ICFkZWZhdWx0O1xuXG5cbi8qIEFOSU1BVElPTiAqL1xuJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW46IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1saW5lYXItaW46IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpICFkZWZhdWx0O1xuXG4kYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ6ICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiAhZGVmYXVsdDtcblxuXG4vKiBQUk9HUkVTUyAqL1xuJGJhci1oZWlnaHQ6IDRweCAhZGVmYXVsdDtcblxuLyogQkFER0UgKi9cbiRiYWRnZS1mb250LXNpemU6IDEycHg7XG4kYmFkZ2UtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50LWNvbnRyYXN0fSlcIikgIWRlZmF1bHQ7XG4kYmFkZ2UtY29sb3ItaW52ZXJzZTogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhZGVmYXVsdDtcbiRiYWRnZS1iYWNrZ3JvdW5kOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudH0pXCIpICFkZWZhdWx0O1xuJGJhZGdlLWJhY2tncm91bmQtaW52ZXJzZTogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnQtY29udHJhc3R9KVwiKSAhZGVmYXVsdDtcbiRiYWRnZS1zaXplIDogMjJweDtcbiRiYWRnZS1wYWRkaW5nOiAycHg7XG5cbi8qIFNIQURPV1MgKi9cblxuJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eTogMC4yO1xuJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eTogMC4xNDtcbiRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eTogMC4xMjtcblxuLyogR1JJRCAqL1xuXG4kZ3JpZC1kZXNrdG9wLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGdyaWQtZGVza3RvcC1ndXR0ZXI6IDE2cHggIWRlZmF1bHQ7XG4kZ3JpZC1kZXNrdG9wLW1hcmdpbjogMTZweCAhZGVmYXVsdDtcblxuJGdyaWQtZGVza3RvcC1icmVha3BvaW50OiA4NDBweCAhZGVmYXVsdDtcblxuJGdyaWQtdGFibGV0LWNvbHVtbnM6IDggIWRlZmF1bHQ7XG4kZ3JpZC10YWJsZXQtZ3V0dGVyOiAkZ3JpZC1kZXNrdG9wLWd1dHRlciAhZGVmYXVsdDtcbiRncmlkLXRhYmxldC1tYXJnaW46ICRncmlkLWRlc2t0b3AtbWFyZ2luICFkZWZhdWx0O1xuXG4kZ3JpZC10YWJsZXQtYnJlYWtwb2ludDogNDgwcHggIWRlZmF1bHQ7XG5cbiRncmlkLXBob25lLWNvbHVtbnM6IDQgIWRlZmF1bHQ7XG4kZ3JpZC1waG9uZS1ndXR0ZXI6ICRncmlkLWRlc2t0b3AtZ3V0dGVyICFkZWZhdWx0O1xuJGdyaWQtcGhvbmUtbWFyZ2luOiAkZ3JpZC1kZXNrdG9wLW1hcmdpbiAhZGVmYXVsdDtcblxuJGdyaWQtY2VsbC1kZWZhdWx0LWNvbHVtbnM6ICRncmlkLXBob25lLWNvbHVtbnMgIWRlZmF1bHQ7XG5cbi8qIERBVEEgVEFCTEUgKi9cblxuJGRhdGEtdGFibGUtZm9udC1zaXplOiAxM3B4O1xuJGRhdGEtdGFibGUtaGVhZGVyLWZvbnQtc2l6ZTogMTJweDtcblxuJGRhdGEtdGFibGUtaGVhZGVyLWNvbG9yOiByZ2JhKCMwMDAsIDAuNTQpO1xuJGRhdGEtdGFibGUtZGl2aWRlci1jb2xvcjogcmdiYSgjMDAwLCAwLjEyKTtcblxuJGRhdGEtdGFibGUtaG92ZXItY29sb3I6ICNlZWVlZWU7XG4kZGF0YS10YWJsZS1zZWxlY3Rpb24tY29sb3I6ICNlMGUwZTA7XG5cbiRkYXRhLXRhYmxlLWRpdmlkZXJzOiAxcHggc29saWQgJGRhdGEtdGFibGUtZGl2aWRlci1jb2xvcjtcblxuJGRhdGEtdGFibGUtcm93LWhlaWdodDogNDhweDtcbiRkYXRhLXRhYmxlLWxhc3Qtcm93LWhlaWdodDogNTZweDtcbiRkYXRhLXRhYmxlLWhlYWRlci1oZWlnaHQ6IDU2cHg7XG5cbiRkYXRhLXRhYmxlLWNvbHVtbi1zcGFjaW5nOiAzNnB4O1xuJGRhdGEtdGFibGUtY29sdW1uLXBhZGRpbmc6ICRkYXRhLXRhYmxlLWNvbHVtbi1zcGFjaW5nIC8gMjtcblxuJGRhdGEtdGFibGUtY2FyZC1oZWFkZXItaGVpZ2h0OiA2NHB4O1xuJGRhdGEtdGFibGUtY2FyZC10aXRsZS10b3A6IDIwcHg7XG4kZGF0YS10YWJsZS1jYXJkLXBhZGRpbmc6IDI0cHg7XG4kZGF0YS10YWJsZS1idXR0b24tcGFkZGluZy1yaWdodDogMTZweDtcbiRkYXRhLXRhYmxlLWNlbGwtdG9wOiAkZGF0YS10YWJsZS1jYXJkLXBhZGRpbmcgLyAyO1xuXG4vKiBUT09MVElQICovXG4kdG9vbHRpcC1mb250LXNpemU6IDEwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1mb250LXNpemUtbGFyZ2U6IDE0cHggIWRlZmF1bHQ7XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuXG4vLyBDb2xvciBvcmRlcjogNTAsIDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCA2MDAsIDcwMCwgODAwLCA5MDAsIEExMDAsIEEyMDAsXG4vLyBBNDAwLCBBNzAwLlxuXG4kcGFsZXR0ZS1yZWQ6XG5cIjI1NSwyMzUsMjM4XCJcblwiMjU1LDIwNSwyMTBcIlxuXCIyMzksMTU0LDE1NFwiXG5cIjIyOSwxMTUsMTE1XCJcblwiMjM5LDgzLDgwXCJcblwiMjQ0LDY3LDU0XCJcblwiMjI5LDU3LDUzXCJcblwiMjExLDQ3LDQ3XCJcblwiMTk4LDQwLDQwXCJcblwiMTgzLDI4LDI4XCJcblwiMjU1LDEzOCwxMjhcIlxuXCIyNTUsODIsODJcIlxuXCIyNTUsMjMsNjhcIlxuXCIyMTMsMCwwXCI7XG5cbiRwYWxldHRlLXJlZC01MDogbnRoKCRwYWxldHRlLXJlZCwgMSk7XG4kcGFsZXR0ZS1yZWQtMTAwOiBudGgoJHBhbGV0dGUtcmVkLCAyKTtcbiRwYWxldHRlLXJlZC0yMDA6IG50aCgkcGFsZXR0ZS1yZWQsIDMpO1xuJHBhbGV0dGUtcmVkLTMwMDogbnRoKCRwYWxldHRlLXJlZCwgNCk7XG4kcGFsZXR0ZS1yZWQtNDAwOiBudGgoJHBhbGV0dGUtcmVkLCA1KTtcbiRwYWxldHRlLXJlZC01MDA6IG50aCgkcGFsZXR0ZS1yZWQsIDYpO1xuJHBhbGV0dGUtcmVkLTYwMDogbnRoKCRwYWxldHRlLXJlZCwgNyk7XG4kcGFsZXR0ZS1yZWQtNzAwOiBudGgoJHBhbGV0dGUtcmVkLCA4KTtcbiRwYWxldHRlLXJlZC04MDA6IG50aCgkcGFsZXR0ZS1yZWQsIDkpO1xuJHBhbGV0dGUtcmVkLTkwMDogbnRoKCRwYWxldHRlLXJlZCwgMTApO1xuJHBhbGV0dGUtcmVkLUExMDA6IG50aCgkcGFsZXR0ZS1yZWQsIDExKTtcbiRwYWxldHRlLXJlZC1BMjAwOiBudGgoJHBhbGV0dGUtcmVkLCAxMik7XG4kcGFsZXR0ZS1yZWQtQTQwMDogbnRoKCRwYWxldHRlLXJlZCwgMTMpO1xuJHBhbGV0dGUtcmVkLUE3MDA6IG50aCgkcGFsZXR0ZS1yZWQsIDE0KTtcblxuJHBhbGV0dGUtcGluazpcblwiMjUyLDIyOCwyMzZcIlxuXCIyNDgsMTg3LDIwOFwiXG5cIjI0NCwxNDMsMTc3XCJcblwiMjQwLDk4LDE0NlwiXG5cIjIzNiw2NCwxMjJcIlxuXCIyMzMsMzAsOTlcIlxuXCIyMTYsMjcsOTZcIlxuXCIxOTQsMjQsOTFcIlxuXCIxNzMsMjAsODdcIlxuXCIxMzYsMTQsNzlcIlxuXCIyNTUsMTI4LDE3MVwiXG5cIjI1NSw2NCwxMjlcIlxuXCIyNDUsMCw4N1wiXG5cIjE5NywxNyw5OFwiO1xuXG4kcGFsZXR0ZS1waW5rLTUwOiBudGgoJHBhbGV0dGUtcGluaywgMSk7XG4kcGFsZXR0ZS1waW5rLTEwMDogbnRoKCRwYWxldHRlLXBpbmssIDIpO1xuJHBhbGV0dGUtcGluay0yMDA6IG50aCgkcGFsZXR0ZS1waW5rLCAzKTtcbiRwYWxldHRlLXBpbmstMzAwOiBudGgoJHBhbGV0dGUtcGluaywgNCk7XG4kcGFsZXR0ZS1waW5rLTQwMDogbnRoKCRwYWxldHRlLXBpbmssIDUpO1xuJHBhbGV0dGUtcGluay01MDA6IG50aCgkcGFsZXR0ZS1waW5rLCA2KTtcbiRwYWxldHRlLXBpbmstNjAwOiBudGgoJHBhbGV0dGUtcGluaywgNyk7XG4kcGFsZXR0ZS1waW5rLTcwMDogbnRoKCRwYWxldHRlLXBpbmssIDgpO1xuJHBhbGV0dGUtcGluay04MDA6IG50aCgkcGFsZXR0ZS1waW5rLCA5KTtcbiRwYWxldHRlLXBpbmstOTAwOiBudGgoJHBhbGV0dGUtcGluaywgMTApO1xuJHBhbGV0dGUtcGluay1BMTAwOiBudGgoJHBhbGV0dGUtcGluaywgMTEpO1xuJHBhbGV0dGUtcGluay1BMjAwOiBudGgoJHBhbGV0dGUtcGluaywgMTIpO1xuJHBhbGV0dGUtcGluay1BNDAwOiBudGgoJHBhbGV0dGUtcGluaywgMTMpO1xuJHBhbGV0dGUtcGluay1BNzAwOiBudGgoJHBhbGV0dGUtcGluaywgMTQpO1xuXG4kcGFsZXR0ZS1wdXJwbGU6XG5cIjI0MywyMjksMjQ1XCJcblwiMjI1LDE5MCwyMzFcIlxuXCIyMDYsMTQ3LDIxNlwiXG5cIjE4NiwxMDQsMjAwXCJcblwiMTcxLDcxLDE4OFwiXG5cIjE1NiwzOSwxNzZcIlxuXCIxNDIsMzYsMTcwXCJcblwiMTIzLDMxLDE2MlwiXG5cIjEwNiwyNywxNTRcIlxuXCI3NCwyMCwxNDBcIlxuXCIyMzQsMTI4LDI1MlwiXG5cIjIyNCw2NCwyNTFcIlxuXCIyMTMsMCwyNDlcIlxuXCIxNzAsMCwyNTVcIjtcblxuJHBhbGV0dGUtcHVycGxlLTUwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAxKTtcbiRwYWxldHRlLXB1cnBsZS0xMDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDIpO1xuJHBhbGV0dGUtcHVycGxlLTIwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgMyk7XG4kcGFsZXR0ZS1wdXJwbGUtMzAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCA0KTtcbiRwYWxldHRlLXB1cnBsZS00MDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDUpO1xuJHBhbGV0dGUtcHVycGxlLTUwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgNik7XG4kcGFsZXR0ZS1wdXJwbGUtNjAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCA3KTtcbiRwYWxldHRlLXB1cnBsZS03MDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDgpO1xuJHBhbGV0dGUtcHVycGxlLTgwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgOSk7XG4kcGFsZXR0ZS1wdXJwbGUtOTAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAxMCk7XG4kcGFsZXR0ZS1wdXJwbGUtQTEwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgMTEpO1xuJHBhbGV0dGUtcHVycGxlLUEyMDA6IG50aCgkcGFsZXR0ZS1wdXJwbGUsIDEyKTtcbiRwYWxldHRlLXB1cnBsZS1BNDAwOiBudGgoJHBhbGV0dGUtcHVycGxlLCAxMyk7XG4kcGFsZXR0ZS1wdXJwbGUtQTcwMDogbnRoKCRwYWxldHRlLXB1cnBsZSwgMTQpO1xuXG4kcGFsZXR0ZS1kZWVwLXB1cnBsZTpcblwiMjM3LDIzMSwyNDZcIlxuXCIyMDksMTk2LDIzM1wiXG5cIjE3OSwxNTcsMjE5XCJcblwiMTQ5LDExNywyMDVcIlxuXCIxMjYsODcsMTk0XCJcblwiMTAzLDU4LDE4M1wiXG5cIjk0LDUzLDE3N1wiXG5cIjgxLDQ1LDE2OFwiXG5cIjY5LDM5LDE2MFwiXG5cIjQ5LDI3LDE0NlwiXG5cIjE3OSwxMzYsMjU1XCJcblwiMTI0LDc3LDI1NVwiXG5cIjEwMSwzMSwyNTVcIlxuXCI5OCwwLDIzNFwiO1xuXG4kcGFsZXR0ZS1kZWVwLXB1cnBsZS01MDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAxKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTEwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAyKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTIwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAzKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTMwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA0KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTQwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA1KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTUwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA2KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTYwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA3KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTcwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA4KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTgwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCA5KTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLTkwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAxMCk7XG4kcGFsZXR0ZS1kZWVwLXB1cnBsZS1BMTAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDExKTtcbiRwYWxldHRlLWRlZXAtcHVycGxlLUEyMDA6IG50aCgkcGFsZXR0ZS1kZWVwLXB1cnBsZSwgMTIpO1xuJHBhbGV0dGUtZGVlcC1wdXJwbGUtQTQwMDogbnRoKCRwYWxldHRlLWRlZXAtcHVycGxlLCAxMyk7XG4kcGFsZXR0ZS1kZWVwLXB1cnBsZS1BNzAwOiBudGgoJHBhbGV0dGUtZGVlcC1wdXJwbGUsIDE0KTtcblxuJHBhbGV0dGUtaW5kaWdvOlxuXCIyMzIsMjM0LDI0NlwiXG5cIjE5NywyMDIsMjMzXCJcblwiMTU5LDE2OCwyMThcIlxuXCIxMjEsMTM0LDIwM1wiXG5cIjkyLDEwNywxOTJcIlxuXCI2Myw4MSwxODFcIlxuXCI1Nyw3MywxNzFcIlxuXCI0OCw2MywxNTlcIlxuXCI0MCw1MywxNDdcIlxuXCIyNiwzNSwxMjZcIlxuXCIxNDAsMTU4LDI1NVwiXG5cIjgzLDEwOSwyNTRcIlxuXCI2MSw5MCwyNTRcIlxuXCI0OCw3OSwyNTRcIjtcblxuJHBhbGV0dGUtaW5kaWdvLTUwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAxKTtcbiRwYWxldHRlLWluZGlnby0xMDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDIpO1xuJHBhbGV0dGUtaW5kaWdvLTIwMDogbnRoKCRwYWxldHRlLWluZGlnbywgMyk7XG4kcGFsZXR0ZS1pbmRpZ28tMzAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCA0KTtcbiRwYWxldHRlLWluZGlnby00MDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDUpO1xuJHBhbGV0dGUtaW5kaWdvLTUwMDogbnRoKCRwYWxldHRlLWluZGlnbywgNik7XG4kcGFsZXR0ZS1pbmRpZ28tNjAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCA3KTtcbiRwYWxldHRlLWluZGlnby03MDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDgpO1xuJHBhbGV0dGUtaW5kaWdvLTgwMDogbnRoKCRwYWxldHRlLWluZGlnbywgOSk7XG4kcGFsZXR0ZS1pbmRpZ28tOTAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAxMCk7XG4kcGFsZXR0ZS1pbmRpZ28tQTEwMDogbnRoKCRwYWxldHRlLWluZGlnbywgMTEpO1xuJHBhbGV0dGUtaW5kaWdvLUEyMDA6IG50aCgkcGFsZXR0ZS1pbmRpZ28sIDEyKTtcbiRwYWxldHRlLWluZGlnby1BNDAwOiBudGgoJHBhbGV0dGUtaW5kaWdvLCAxMyk7XG4kcGFsZXR0ZS1pbmRpZ28tQTcwMDogbnRoKCRwYWxldHRlLWluZGlnbywgMTQpO1xuXG4kcGFsZXR0ZS1ibHVlOlxuXCIyMjcsMjQyLDI1M1wiXG5cIjE4NywyMjIsMjUxXCJcblwiMTQ0LDIwMiwyNDlcIlxuXCIxMDAsMTgxLDI0NlwiXG5cIjY2LDE2NSwyNDVcIlxuXCIzMywxNTAsMjQzXCJcblwiMzAsMTM2LDIyOVwiXG5cIjI1LDExOCwyMTBcIlxuXCIyMSwxMDEsMTkyXCJcblwiMTMsNzEsMTYxXCJcblwiMTMwLDE3NywyNTVcIlxuXCI2OCwxMzgsMjU1XCJcblwiNDEsMTIxLDI1NVwiXG5cIjQxLDk4LDI1NVwiO1xuXG4kcGFsZXR0ZS1ibHVlLTUwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMSk7XG4kcGFsZXR0ZS1ibHVlLTEwMDogbnRoKCRwYWxldHRlLWJsdWUsIDIpO1xuJHBhbGV0dGUtYmx1ZS0yMDA6IG50aCgkcGFsZXR0ZS1ibHVlLCAzKTtcbiRwYWxldHRlLWJsdWUtMzAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgNCk7XG4kcGFsZXR0ZS1ibHVlLTQwMDogbnRoKCRwYWxldHRlLWJsdWUsIDUpO1xuJHBhbGV0dGUtYmx1ZS01MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCA2KTtcbiRwYWxldHRlLWJsdWUtNjAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgNyk7XG4kcGFsZXR0ZS1ibHVlLTcwMDogbnRoKCRwYWxldHRlLWJsdWUsIDgpO1xuJHBhbGV0dGUtYmx1ZS04MDA6IG50aCgkcGFsZXR0ZS1ibHVlLCA5KTtcbiRwYWxldHRlLWJsdWUtOTAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMTApO1xuJHBhbGV0dGUtYmx1ZS1BMTAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMTEpO1xuJHBhbGV0dGUtYmx1ZS1BMjAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMTIpO1xuJHBhbGV0dGUtYmx1ZS1BNDAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMTMpO1xuJHBhbGV0dGUtYmx1ZS1BNzAwOiBudGgoJHBhbGV0dGUtYmx1ZSwgMTQpO1xuXG4kcGFsZXR0ZS1saWdodC1ibHVlOlxuXCIyMjUsMjQ1LDI1NFwiXG5cIjE3OSwyMjksMjUyXCJcblwiMTI5LDIxMiwyNTBcIlxuXCI3OSwxOTUsMjQ3XCJcblwiNDEsMTgyLDI0NlwiXG5cIjMsMTY5LDI0NFwiXG5cIjMsMTU1LDIyOVwiXG5cIjIsMTM2LDIwOVwiXG5cIjIsMTE5LDE4OVwiXG5cIjEsODcsMTU1XCJcblwiMTI4LDIxNiwyNTVcIlxuXCI2NCwxOTYsMjU1XCJcblwiMCwxNzYsMjU1XCJcblwiMCwxNDUsMjM0XCI7XG5cbiRwYWxldHRlLWxpZ2h0LWJsdWUtNTA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxKTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtMTAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgMik7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTIwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDMpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS0zMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCA0KTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtNDAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgNSk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTUwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDYpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS02MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCA3KTtcbiRwYWxldHRlLWxpZ2h0LWJsdWUtNzAwOiBudGgoJHBhbGV0dGUtbGlnaHQtYmx1ZSwgOCk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLTgwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWJsdWUsIDkpO1xuJHBhbGV0dGUtbGlnaHQtYmx1ZS05MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxMCk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLUExMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxMSk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLUEyMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxMik7XG4kcGFsZXR0ZS1saWdodC1ibHVlLUE0MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxMyk7XG4kcGFsZXR0ZS1saWdodC1ibHVlLUE3MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ibHVlLCAxNCk7XG5cbiRwYWxldHRlLWN5YW46XG5cIjIyNCwyNDcsMjUwXCJcblwiMTc4LDIzNSwyNDJcIlxuXCIxMjgsMjIyLDIzNFwiXG5cIjc3LDIwOCwyMjVcIlxuXCIzOCwxOTgsMjE4XCJcblwiMCwxODgsMjEyXCJcblwiMCwxNzIsMTkzXCJcblwiMCwxNTEsMTY3XCJcblwiMCwxMzEsMTQzXCJcblwiMCw5NiwxMDBcIlxuXCIxMzIsMjU1LDI1NVwiXG5cIjI0LDI1NSwyNTVcIlxuXCIwLDIyOSwyNTVcIlxuXCIwLDE4NCwyMTJcIjtcblxuJHBhbGV0dGUtY3lhbi01MDogbnRoKCRwYWxldHRlLWN5YW4sIDEpO1xuJHBhbGV0dGUtY3lhbi0xMDA6IG50aCgkcGFsZXR0ZS1jeWFuLCAyKTtcbiRwYWxldHRlLWN5YW4tMjAwOiBudGgoJHBhbGV0dGUtY3lhbiwgMyk7XG4kcGFsZXR0ZS1jeWFuLTMwMDogbnRoKCRwYWxldHRlLWN5YW4sIDQpO1xuJHBhbGV0dGUtY3lhbi00MDA6IG50aCgkcGFsZXR0ZS1jeWFuLCA1KTtcbiRwYWxldHRlLWN5YW4tNTAwOiBudGgoJHBhbGV0dGUtY3lhbiwgNik7XG4kcGFsZXR0ZS1jeWFuLTYwMDogbnRoKCRwYWxldHRlLWN5YW4sIDcpO1xuJHBhbGV0dGUtY3lhbi03MDA6IG50aCgkcGFsZXR0ZS1jeWFuLCA4KTtcbiRwYWxldHRlLWN5YW4tODAwOiBudGgoJHBhbGV0dGUtY3lhbiwgOSk7XG4kcGFsZXR0ZS1jeWFuLTkwMDogbnRoKCRwYWxldHRlLWN5YW4sIDEwKTtcbiRwYWxldHRlLWN5YW4tQTEwMDogbnRoKCRwYWxldHRlLWN5YW4sIDExKTtcbiRwYWxldHRlLWN5YW4tQTIwMDogbnRoKCRwYWxldHRlLWN5YW4sIDEyKTtcbiRwYWxldHRlLWN5YW4tQTQwMDogbnRoKCRwYWxldHRlLWN5YW4sIDEzKTtcbiRwYWxldHRlLWN5YW4tQTcwMDogbnRoKCRwYWxldHRlLWN5YW4sIDE0KTtcblxuJHBhbGV0dGUtdGVhbDpcblwiMjI0LDI0MiwyNDFcIlxuXCIxNzgsMjIzLDIxOVwiXG5cIjEyOCwyMDMsMTk2XCJcblwiNzcsMTgyLDE3MlwiXG5cIjM4LDE2NiwxNTRcIlxuXCIwLDE1MCwxMzZcIlxuXCIwLDEzNywxMjNcIlxuXCIwLDEyMSwxMDdcIlxuXCIwLDEwNSw5MlwiXG5cIjAsNzcsNjRcIlxuXCIxNjcsMjU1LDIzNVwiXG5cIjEwMCwyNTUsMjE4XCJcblwiMjksMjMzLDE4MlwiXG5cIjAsMTkxLDE2NVwiO1xuXG4kcGFsZXR0ZS10ZWFsLTUwOiBudGgoJHBhbGV0dGUtdGVhbCwgMSk7XG4kcGFsZXR0ZS10ZWFsLTEwMDogbnRoKCRwYWxldHRlLXRlYWwsIDIpO1xuJHBhbGV0dGUtdGVhbC0yMDA6IG50aCgkcGFsZXR0ZS10ZWFsLCAzKTtcbiRwYWxldHRlLXRlYWwtMzAwOiBudGgoJHBhbGV0dGUtdGVhbCwgNCk7XG4kcGFsZXR0ZS10ZWFsLTQwMDogbnRoKCRwYWxldHRlLXRlYWwsIDUpO1xuJHBhbGV0dGUtdGVhbC01MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCA2KTtcbiRwYWxldHRlLXRlYWwtNjAwOiBudGgoJHBhbGV0dGUtdGVhbCwgNyk7XG4kcGFsZXR0ZS10ZWFsLTcwMDogbnRoKCRwYWxldHRlLXRlYWwsIDgpO1xuJHBhbGV0dGUtdGVhbC04MDA6IG50aCgkcGFsZXR0ZS10ZWFsLCA5KTtcbiRwYWxldHRlLXRlYWwtOTAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMTApO1xuJHBhbGV0dGUtdGVhbC1BMTAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMTEpO1xuJHBhbGV0dGUtdGVhbC1BMjAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMTIpO1xuJHBhbGV0dGUtdGVhbC1BNDAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMTMpO1xuJHBhbGV0dGUtdGVhbC1BNzAwOiBudGgoJHBhbGV0dGUtdGVhbCwgMTQpO1xuXG4kcGFsZXR0ZS1ncmVlbjpcblwiMjMyLDI0NSwyMzNcIlxuXCIyMDAsMjMwLDIwMVwiXG5cIjE2NSwyMTQsMTY3XCJcblwiMTI5LDE5OSwxMzJcIlxuXCIxMDIsMTg3LDEwNlwiXG5cIjc2LDE3NSw4MFwiXG5cIjY3LDE2MCw3MVwiXG5cIjU2LDE0Miw2MFwiXG5cIjQ2LDEyNSw1MFwiXG5cIjI3LDk0LDMyXCJcblwiMTg1LDI0NiwyMDJcIlxuXCIxMDUsMjQwLDE3NFwiXG5cIjAsMjMwLDExOFwiXG5cIjAsMjAwLDgzXCI7XG5cbiRwYWxldHRlLWdyZWVuLTUwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDEpO1xuJHBhbGV0dGUtZ3JlZW4tMTAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDIpO1xuJHBhbGV0dGUtZ3JlZW4tMjAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDMpO1xuJHBhbGV0dGUtZ3JlZW4tMzAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDQpO1xuJHBhbGV0dGUtZ3JlZW4tNDAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDUpO1xuJHBhbGV0dGUtZ3JlZW4tNTAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDYpO1xuJHBhbGV0dGUtZ3JlZW4tNjAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDcpO1xuJHBhbGV0dGUtZ3JlZW4tNzAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDgpO1xuJHBhbGV0dGUtZ3JlZW4tODAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDkpO1xuJHBhbGV0dGUtZ3JlZW4tOTAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDEwKTtcbiRwYWxldHRlLWdyZWVuLUExMDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMTEpO1xuJHBhbGV0dGUtZ3JlZW4tQTIwMDogbnRoKCRwYWxldHRlLWdyZWVuLCAxMik7XG4kcGFsZXR0ZS1ncmVlbi1BNDAwOiBudGgoJHBhbGV0dGUtZ3JlZW4sIDEzKTtcbiRwYWxldHRlLWdyZWVuLUE3MDA6IG50aCgkcGFsZXR0ZS1ncmVlbiwgMTQpO1xuXG4kcGFsZXR0ZS1saWdodC1ncmVlbjpcblwiMjQxLDI0OCwyMzNcIlxuXCIyMjAsMjM3LDIwMFwiXG5cIjE5NywyMjUsMTY1XCJcblwiMTc0LDIxMywxMjlcIlxuXCIxNTYsMjA0LDEwMVwiXG5cIjEzOSwxOTUsNzRcIlxuXCIxMjQsMTc5LDY2XCJcblwiMTA0LDE1OSw1NlwiXG5cIjg1LDEzOSw0N1wiXG5cIjUxLDEwNSwzMFwiXG5cIjIwNCwyNTUsMTQ0XCJcblwiMTc4LDI1NSw4OVwiXG5cIjExOCwyNTUsM1wiXG5cIjEwMCwyMjEsMjNcIjtcblxuJHBhbGV0dGUtbGlnaHQtZ3JlZW4tNTA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMSk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi0xMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMik7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi0yMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMyk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi0zMDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgNCk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi00MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgNSk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi01MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgNik7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi02MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgNyk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi03MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgOCk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi04MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgOSk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi05MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMTApO1xuJHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTEwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAxMSk7XG4kcGFsZXR0ZS1saWdodC1ncmVlbi1BMjAwOiBudGgoJHBhbGV0dGUtbGlnaHQtZ3JlZW4sIDEyKTtcbiRwYWxldHRlLWxpZ2h0LWdyZWVuLUE0MDA6IG50aCgkcGFsZXR0ZS1saWdodC1ncmVlbiwgMTMpO1xuJHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTcwMDogbnRoKCRwYWxldHRlLWxpZ2h0LWdyZWVuLCAxNCk7XG5cbiRwYWxldHRlLWxpbWU6XG5cIjI0OSwyNTEsMjMxXCJcblwiMjQwLDI0NCwxOTVcIlxuXCIyMzAsMjM4LDE1NlwiXG5cIjIyMCwyMzEsMTE3XCJcblwiMjEyLDIyNSw4N1wiXG5cIjIwNSwyMjAsNTdcIlxuXCIxOTIsMjAyLDUxXCJcblwiMTc1LDE4MCw0M1wiXG5cIjE1OCwxNTcsMzZcIlxuXCIxMzAsMTE5LDIzXCJcblwiMjQ0LDI1NSwxMjlcIlxuXCIyMzgsMjU1LDY1XCJcblwiMTk4LDI1NSwwXCJcblwiMTc0LDIzNCwwXCI7XG5cbiRwYWxldHRlLWxpbWUtNTA6IG50aCgkcGFsZXR0ZS1saW1lLCAxKTtcbiRwYWxldHRlLWxpbWUtMTAwOiBudGgoJHBhbGV0dGUtbGltZSwgMik7XG4kcGFsZXR0ZS1saW1lLTIwMDogbnRoKCRwYWxldHRlLWxpbWUsIDMpO1xuJHBhbGV0dGUtbGltZS0zMDA6IG50aCgkcGFsZXR0ZS1saW1lLCA0KTtcbiRwYWxldHRlLWxpbWUtNDAwOiBudGgoJHBhbGV0dGUtbGltZSwgNSk7XG4kcGFsZXR0ZS1saW1lLTUwMDogbnRoKCRwYWxldHRlLWxpbWUsIDYpO1xuJHBhbGV0dGUtbGltZS02MDA6IG50aCgkcGFsZXR0ZS1saW1lLCA3KTtcbiRwYWxldHRlLWxpbWUtNzAwOiBudGgoJHBhbGV0dGUtbGltZSwgOCk7XG4kcGFsZXR0ZS1saW1lLTgwMDogbnRoKCRwYWxldHRlLWxpbWUsIDkpO1xuJHBhbGV0dGUtbGltZS05MDA6IG50aCgkcGFsZXR0ZS1saW1lLCAxMCk7XG4kcGFsZXR0ZS1saW1lLUExMDA6IG50aCgkcGFsZXR0ZS1saW1lLCAxMSk7XG4kcGFsZXR0ZS1saW1lLUEyMDA6IG50aCgkcGFsZXR0ZS1saW1lLCAxMik7XG4kcGFsZXR0ZS1saW1lLUE0MDA6IG50aCgkcGFsZXR0ZS1saW1lLCAxMyk7XG4kcGFsZXR0ZS1saW1lLUE3MDA6IG50aCgkcGFsZXR0ZS1saW1lLCAxNCk7XG5cbiRwYWxldHRlLXllbGxvdzpcblwiMjU1LDI1MywyMzFcIlxuXCIyNTUsMjQ5LDE5NlwiXG5cIjI1NSwyNDUsMTU3XCJcblwiMjU1LDI0MSwxMThcIlxuXCIyNTUsMjM4LDg4XCJcblwiMjU1LDIzNSw1OVwiXG5cIjI1MywyMTYsNTNcIlxuXCIyNTEsMTkyLDQ1XCJcblwiMjQ5LDE2OCwzN1wiXG5cIjI0NSwxMjcsMjNcIlxuXCIyNTUsMjU1LDE0MVwiXG5cIjI1NSwyNTUsMFwiXG5cIjI1NSwyMzQsMFwiXG5cIjI1NSwyMTQsMFwiO1xuXG4kcGFsZXR0ZS15ZWxsb3ctNTA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDEpO1xuJHBhbGV0dGUteWVsbG93LTEwMDogbnRoKCRwYWxldHRlLXllbGxvdywgMik7XG4kcGFsZXR0ZS15ZWxsb3ctMjAwOiBudGgoJHBhbGV0dGUteWVsbG93LCAzKTtcbiRwYWxldHRlLXllbGxvdy0zMDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDQpO1xuJHBhbGV0dGUteWVsbG93LTQwMDogbnRoKCRwYWxldHRlLXllbGxvdywgNSk7XG4kcGFsZXR0ZS15ZWxsb3ctNTAwOiBudGgoJHBhbGV0dGUteWVsbG93LCA2KTtcbiRwYWxldHRlLXllbGxvdy02MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDcpO1xuJHBhbGV0dGUteWVsbG93LTcwMDogbnRoKCRwYWxldHRlLXllbGxvdywgOCk7XG4kcGFsZXR0ZS15ZWxsb3ctODAwOiBudGgoJHBhbGV0dGUteWVsbG93LCA5KTtcbiRwYWxldHRlLXllbGxvdy05MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDEwKTtcbiRwYWxldHRlLXllbGxvdy1BMTAwOiBudGgoJHBhbGV0dGUteWVsbG93LCAxMSk7XG4kcGFsZXR0ZS15ZWxsb3ctQTIwMDogbnRoKCRwYWxldHRlLXllbGxvdywgMTIpO1xuJHBhbGV0dGUteWVsbG93LUE0MDA6IG50aCgkcGFsZXR0ZS15ZWxsb3csIDEzKTtcbiRwYWxldHRlLXllbGxvdy1BNzAwOiBudGgoJHBhbGV0dGUteWVsbG93LCAxNCk7XG5cbiRwYWxldHRlLWFtYmVyOlxuXCIyNTUsMjQ4LDIyNVwiXG5cIjI1NSwyMzYsMTc5XCJcblwiMjU1LDIyNCwxMzBcIlxuXCIyNTUsMjEzLDc5XCJcblwiMjU1LDIwMiw0MFwiXG5cIjI1NSwxOTMsN1wiXG5cIjI1NSwxNzksMFwiXG5cIjI1NSwxNjAsMFwiXG5cIjI1NSwxNDMsMFwiXG5cIjI1NSwxMTEsMFwiXG5cIjI1NSwyMjksMTI3XCJcblwiMjU1LDIxNSw2NFwiXG5cIjI1NSwxOTYsMFwiXG5cIjI1NSwxNzEsMFwiO1xuXG4kcGFsZXR0ZS1hbWJlci01MDogbnRoKCRwYWxldHRlLWFtYmVyLCAxKTtcbiRwYWxldHRlLWFtYmVyLTEwMDogbnRoKCRwYWxldHRlLWFtYmVyLCAyKTtcbiRwYWxldHRlLWFtYmVyLTIwMDogbnRoKCRwYWxldHRlLWFtYmVyLCAzKTtcbiRwYWxldHRlLWFtYmVyLTMwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA0KTtcbiRwYWxldHRlLWFtYmVyLTQwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA1KTtcbiRwYWxldHRlLWFtYmVyLTUwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA2KTtcbiRwYWxldHRlLWFtYmVyLTYwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA3KTtcbiRwYWxldHRlLWFtYmVyLTcwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA4KTtcbiRwYWxldHRlLWFtYmVyLTgwMDogbnRoKCRwYWxldHRlLWFtYmVyLCA5KTtcbiRwYWxldHRlLWFtYmVyLTkwMDogbnRoKCRwYWxldHRlLWFtYmVyLCAxMCk7XG4kcGFsZXR0ZS1hbWJlci1BMTAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDExKTtcbiRwYWxldHRlLWFtYmVyLUEyMDA6IG50aCgkcGFsZXR0ZS1hbWJlciwgMTIpO1xuJHBhbGV0dGUtYW1iZXItQTQwMDogbnRoKCRwYWxldHRlLWFtYmVyLCAxMyk7XG4kcGFsZXR0ZS1hbWJlci1BNzAwOiBudGgoJHBhbGV0dGUtYW1iZXIsIDE0KTtcblxuJHBhbGV0dGUtb3JhbmdlOlxuXCIyNTUsMjQzLDIyNFwiXG5cIjI1NSwyMjQsMTc4XCJcblwiMjU1LDIwNCwxMjhcIlxuXCIyNTUsMTgzLDc3XCJcblwiMjU1LDE2NywzOFwiXG5cIjI1NSwxNTIsMFwiXG5cIjI1MSwxNDAsMFwiXG5cIjI0NSwxMjQsMFwiXG5cIjIzOSwxMDgsMFwiXG5cIjIzMCw4MSwwXCJcblwiMjU1LDIwOSwxMjhcIlxuXCIyNTUsMTcxLDY0XCJcblwiMjU1LDE0NSwwXCJcblwiMjU1LDEwOSwwXCI7XG5cbiRwYWxldHRlLW9yYW5nZS01MDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMSk7XG4kcGFsZXR0ZS1vcmFuZ2UtMTAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCAyKTtcbiRwYWxldHRlLW9yYW5nZS0yMDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDMpO1xuJHBhbGV0dGUtb3JhbmdlLTMwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgNCk7XG4kcGFsZXR0ZS1vcmFuZ2UtNDAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCA1KTtcbiRwYWxldHRlLW9yYW5nZS01MDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDYpO1xuJHBhbGV0dGUtb3JhbmdlLTYwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgNyk7XG4kcGFsZXR0ZS1vcmFuZ2UtNzAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCA4KTtcbiRwYWxldHRlLW9yYW5nZS04MDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDkpO1xuJHBhbGV0dGUtb3JhbmdlLTkwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMTApO1xuJHBhbGV0dGUtb3JhbmdlLUExMDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDExKTtcbiRwYWxldHRlLW9yYW5nZS1BMjAwOiBudGgoJHBhbGV0dGUtb3JhbmdlLCAxMik7XG4kcGFsZXR0ZS1vcmFuZ2UtQTQwMDogbnRoKCRwYWxldHRlLW9yYW5nZSwgMTMpO1xuJHBhbGV0dGUtb3JhbmdlLUE3MDA6IG50aCgkcGFsZXR0ZS1vcmFuZ2UsIDE0KTtcblxuJHBhbGV0dGUtZGVlcC1vcmFuZ2U6XG5cIjI1MSwyMzMsMjMxXCJcblwiMjU1LDIwNCwxODhcIlxuXCIyNTUsMTcxLDE0NVwiXG5cIjI1NSwxMzgsMTAxXCJcblwiMjU1LDExMiw2N1wiXG5cIjI1NSw4NywzNFwiXG5cIjI0NCw4MSwzMFwiXG5cIjIzMCw3NCwyNVwiXG5cIjIxNiw2NywyMVwiXG5cIjE5MSw1NCwxMlwiXG5cIjI1NSwxNTgsMTI4XCJcblwiMjU1LDExMCw2NFwiXG5cIjI1NSw2MSwwXCJcblwiMjIxLDQ0LDBcIjtcblxuJHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMSk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS0xMDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMik7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS0yMDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMyk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS0zMDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgNCk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS00MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgNSk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS01MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgNik7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS02MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgNyk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS03MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgOCk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS04MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgOSk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS05MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMTApO1xuJHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTEwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAxMSk7XG4kcGFsZXR0ZS1kZWVwLW9yYW5nZS1BMjAwOiBudGgoJHBhbGV0dGUtZGVlcC1vcmFuZ2UsIDEyKTtcbiRwYWxldHRlLWRlZXAtb3JhbmdlLUE0MDA6IG50aCgkcGFsZXR0ZS1kZWVwLW9yYW5nZSwgMTMpO1xuJHBhbGV0dGUtZGVlcC1vcmFuZ2UtQTcwMDogbnRoKCRwYWxldHRlLWRlZXAtb3JhbmdlLCAxNCk7XG5cblxuLy8gQ29sb3Igb3JkZXI6IDUwLCAxMDAsIDIwMCwgMzAwLCA0MDAsIDUwMCwgNjAwLCA3MDAsIDgwMCwgOTAwLlxuXG4kcGFsZXR0ZS1icm93bjpcblwiMjM5LDIzNSwyMzNcIlxuXCIyMTUsMjA0LDIwMFwiXG5cIjE4OCwxNzAsMTY0XCJcblwiMTYxLDEzNiwxMjdcIlxuXCIxNDEsMTEwLDk5XCJcblwiMTIxLDg1LDcyXCJcblwiMTA5LDc2LDY1XCJcblwiOTMsNjQsNTVcIlxuXCI3OCw1Miw0NlwiXG5cIjYyLDM5LDM1XCI7XG5cbiRwYWxldHRlLWJyb3duLTUwOiBudGgoJHBhbGV0dGUtYnJvd24sIDEpO1xuJHBhbGV0dGUtYnJvd24tMTAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDIpO1xuJHBhbGV0dGUtYnJvd24tMjAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDMpO1xuJHBhbGV0dGUtYnJvd24tMzAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDQpO1xuJHBhbGV0dGUtYnJvd24tNDAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDUpO1xuJHBhbGV0dGUtYnJvd24tNTAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDYpO1xuJHBhbGV0dGUtYnJvd24tNjAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDcpO1xuJHBhbGV0dGUtYnJvd24tNzAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDgpO1xuJHBhbGV0dGUtYnJvd24tODAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDkpO1xuJHBhbGV0dGUtYnJvd24tOTAwOiBudGgoJHBhbGV0dGUtYnJvd24sIDEwKTtcblxuJHBhbGV0dGUtZ3JleTpcblwiMjUwLDI1MCwyNTBcIlxuXCIyNDUsMjQ1LDI0NVwiXG5cIjIzOCwyMzgsMjM4XCJcblwiMjI0LDIyNCwyMjRcIlxuXCIxODksMTg5LDE4OVwiXG5cIjE1OCwxNTgsMTU4XCJcblwiMTE3LDExNywxMTdcIlxuXCI5Nyw5Nyw5N1wiXG5cIjY2LDY2LDY2XCJcblwiMzMsMzMsMzNcIjtcblxuJHBhbGV0dGUtZ3JleS01MDogbnRoKCRwYWxldHRlLWdyZXksIDEpO1xuJHBhbGV0dGUtZ3JleS0xMDA6IG50aCgkcGFsZXR0ZS1ncmV5LCAyKTtcbiRwYWxldHRlLWdyZXktMjAwOiBudGgoJHBhbGV0dGUtZ3JleSwgMyk7XG4kcGFsZXR0ZS1ncmV5LTMwMDogbnRoKCRwYWxldHRlLWdyZXksIDQpO1xuJHBhbGV0dGUtZ3JleS00MDA6IG50aCgkcGFsZXR0ZS1ncmV5LCA1KTtcbiRwYWxldHRlLWdyZXktNTAwOiBudGgoJHBhbGV0dGUtZ3JleSwgNik7XG4kcGFsZXR0ZS1ncmV5LTYwMDogbnRoKCRwYWxldHRlLWdyZXksIDcpO1xuJHBhbGV0dGUtZ3JleS03MDA6IG50aCgkcGFsZXR0ZS1ncmV5LCA4KTtcbiRwYWxldHRlLWdyZXktODAwOiBudGgoJHBhbGV0dGUtZ3JleSwgOSk7XG4kcGFsZXR0ZS1ncmV5LTkwMDogbnRoKCRwYWxldHRlLWdyZXksIDEwKTtcblxuJHBhbGV0dGUtYmx1ZS1ncmV5OlxuXCIyMzYsMjM5LDI0MVwiXG5cIjIwNywyMTYsMjIwXCJcblwiMTc2LDE5MCwxOTdcIlxuXCIxNDQsMTY0LDE3NFwiXG5cIjEyMCwxNDQsMTU2XCJcblwiOTYsMTI1LDEzOVwiXG5cIjg0LDExMCwxMjJcIlxuXCI2OSw5MCwxMDBcIlxuXCI1NSw3MSw3OVwiXG5cIjM4LDUwLDU2XCI7XG5cbiRwYWxldHRlLWJsdWUtZ3JleS01MDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgMSk7XG4kcGFsZXR0ZS1ibHVlLWdyZXktMTAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCAyKTtcbiRwYWxldHRlLWJsdWUtZ3JleS0yMDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDMpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTMwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgNCk7XG4kcGFsZXR0ZS1ibHVlLWdyZXktNDAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCA1KTtcbiRwYWxldHRlLWJsdWUtZ3JleS01MDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDYpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTYwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgNyk7XG4kcGFsZXR0ZS1ibHVlLWdyZXktNzAwOiBudGgoJHBhbGV0dGUtYmx1ZS1ncmV5LCA4KTtcbiRwYWxldHRlLWJsdWUtZ3JleS04MDA6IG50aCgkcGFsZXR0ZS1ibHVlLWdyZXksIDkpO1xuJHBhbGV0dGUtYmx1ZS1ncmV5LTkwMDogbnRoKCRwYWxldHRlLWJsdWUtZ3JleSwgMTApO1xuXG4kY29sb3ItYmxhY2s6IFwiMCwwLDBcIjtcbiRjb2xvci13aGl0ZTogXCIyNTUsMjU1LDI1NVwiO1xuXG5cbi8qIGNvbG9ycy5zY3NzICovXG4kc3R5bGVndWlkZS1nZW5lcmF0ZS10ZW1wbGF0ZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRoZSB0d28gcG9zc2libGUgY29sb3JzIGZvciBvdmVybGF5ZWQgdGV4dC5cbiRjb2xvci1kYXJrLWNvbnRyYXN0OiAkY29sb3Itd2hpdGUgIWRlZmF1bHQ7XG4kY29sb3ItbGlnaHQtY29udHJhc3Q6ICRjb2xvci1ibGFjayAhZGVmYXVsdDtcbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkbnVtYmVyKSB7XG4gIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyogVHlwb2dyYXBoeSAqL1xuXG5AbWl4aW4gdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpZiAkdXNlUHJlZmVycmVkIHtcbiAgICBmb250LWZhbWlseTogJHByZWZlcnJlZF9mb250O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktNCgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTMoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1kaXNwbGF5LTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjU0O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWRpc3BsYXktMSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8taGVhZGxpbmUoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLXRpdGxlKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1zdWJoZWFkKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC44NztcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1zdWJoZWFkLTIoJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiB0cnVlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWJvZHktMigkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHR5cG8tcHJlZmVycmVkLWZvbnQoJHVzZVByZWZlcnJlZCk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgQGlmICR1c2VQcmVmZXJyZWQge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH0gQGVsc2Uge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYm9keS0xKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG5cbiAgQGlmICRjb2xvckNvbnRyYXN0IHtcbiAgICBvcGFjaXR5OiAwLjg3O1xuICB9XG59XG5cbkBtaXhpbiB0eXBvLWNhcHRpb24oJGNvbG9yQ29udHJhc3Q6IGZhbHNlLCAkdXNlUHJlZmVycmVkOiBmYWxzZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuNTQ7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYmxvY2txdW90ZSgkY29sb3JDb250cmFzdDogZmFsc2UsICR1c2VQcmVmZXJyZWQ6IHRydWUpIHtcbiAgQGluY2x1ZGUgdHlwby1wcmVmZXJyZWQtZm9udCgkdXNlUHJlZmVycmVkKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG5cbiAgJjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMC41ZW07XG4gICAgY29udGVudDogJ+KAnCc7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAn4oCdJztcbiAgICBtYXJnaW4tbGVmdDogLTAuMDVlbTtcbiAgfVxuXG4gIEBpZiAkY29sb3JDb250cmFzdCB7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgfVxufVxuXG5AbWl4aW4gdHlwby1tZW51KCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuQG1peGluIHR5cG8tYnV0dG9uKCRjb2xvckNvbnRyYXN0OiBmYWxzZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSkge1xuICBAaW5jbHVkZSB0eXBvLXByZWZlcnJlZC1mb250KCR1c2VQcmVmZXJyZWQpO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcblxuICBAaWYgJGNvbG9yQ29udHJhc3Qge1xuICAgIG9wYWNpdHk6IDAuODc7XG4gIH1cbn1cblxuLyogU2hhZG93cyAqL1xuXG4vLyBGb2N1cyBzaGFkb3cgbWl4aW4uXG5AbWl4aW4gZm9jdXMtc2hhZG93KCkge1xuICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwwLDAsLjE4KSwwIDhweCAxNnB4IHJnYmEoMCwwLDAsLjM2KTtcbn1cblxuQG1peGluIHNoYWRvdy0yZHAoKSB7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctM2RwKCkge1xuICBib3gtc2hhZG93OiAwIDNweCA0cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCAzcHggLTJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDFweCA4cHggMCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSk7XG59XG5AbWl4aW4gc2hhZG93LTRkcCgpIHtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctNmRwKCkge1xuICBib3gtc2hhZG93OiAwIDZweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAxcHggMThweCAwIHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSxcbiAgICAgICAgICAgICAgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cbkBtaXhpbiBzaGFkb3ctOGRwKCkge1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsICRzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHkpLFxuICAgICAgICAgICAgICAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eSk7XG59XG5cbkBtaXhpbiBzaGFkb3ctMTZkcCgpIHtcbiAgYm94LXNoYWRvdzogMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwgMCwgMCwgJHNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsICRzaGFkb3ctYW1iaWVudC1zaGFkb3ctb3BhY2l0eSksXG4gICAgICAgICAgICAgIDAgIDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAkc2hhZG93LWtleS11bWJyYS1vcGFjaXR5KTtcbn1cblxuLyogQW5pbWF0aW9ucyAqL1xuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWZhc3Qtb3V0LXNsb3ctaW4oJGR1cmF0aW9uOjAuMnMpIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluO1xufVxuXG5AbWl4aW4gbWF0ZXJpYWwtYW5pbWF0aW9uLWxpbmVhci1vdXQtc2xvdy1pbigkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbjtcbn1cblxuQG1peGluIG1hdGVyaWFsLWFuaW1hdGlvbi1mYXN0LW91dC1saW5lYXItaW4oJGR1cmF0aW9uOjAuMnMpIHtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGR1cmF0aW9uO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1saW5lYXItaW47XG59XG5cbkBtaXhpbiBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgkZHVyYXRpb246MC4ycykge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAkZHVyYXRpb247XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiaDVicFwiO1xuQGltcG9ydCBcIm1vYmlsZVwiO1xuXG4vKlxuICogTWFrZSBodG1sIHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiAqIFRoZW4gc2V0IHRvdWNoLWFjdGlvbiB0byBhdm9pZCB0b3VjaCBkZWxheSBvbiBtb2JpbGUgSUVcbiAqL1xuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8qXG4qIE1ha2UgYm9keSB0YWtlIHVwIHRoZSBlbnRpcmUgc2NyZWVuXG4qIFJlbW92ZSBib2R5IG1hcmdpbiBzbyBsYXlvdXQgY29udGFpbmVycyBkb24ndCBjYXVzZSBleHRyYSBvdmVyZmxvdy5cbiovXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLypcbiAqIE1haW4gZGlzcGxheSByZXNldCBmb3IgSUUgc3VwcG9ydC5cbiAqIFNvdXJjZTogaHR0cDovL3dlYmxvZy53ZXN0LXdpbmQuY29tL3Bvc3RzLzIwMTUvSmFuLzEyL21haW4tSFRNTDUtVGFnLW5vdC13b3JraW5nLWluLUludGVybmV0LUV4cGxvcmVyLTkxMDExXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiogQXBwbHkgbm8gZGlzcGxheSB0byBlbGVtZW50cyB3aXRoIHRoZSBoaWRkZW4gYXR0cmlidXRlLlxuKiBJRSA5IGFuZCAxMCBzdXBwb3J0LlxuKi9cbipbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLypcbiAqIFdoYXQgZm9sbG93cyBpcyB0aGUgcmVzdWx0IG9mIG11Y2ggcmVzZWFyY2ggb24gY3Jvc3MtYnJvd3NlciBzdHlsaW5nLlxuICogQ3JlZGl0IGxlZnQgaW5saW5lIGFuZCBiaWcgdGhhbmtzIHRvIE5pY29sYXMgR2FsbGFnaGVyLCBKb25hdGhhbiBOZWFsLFxuICogS3JvYyBDYW1lbiwgYW5kIHRoZSBINUJQIGRldiBjb21tdW5pdHkgYW5kIHRlYW0uXG4gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2Ugc3R5bGVzOiBvcGluaW9uYXRlZCBkZWZhdWx0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuaHRtbCB7XG4gICAgY29sb3I6ICR0ZXh0LWNvbG9yLXByaW1hcnk7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVGhlc2Ugc2VsZWN0aW9uIHJ1bGUgc2V0cyBoYXZlIHRvIGJlIHNlcGFyYXRlLlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG5cbjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG4vKlxuICogQSBiZXR0ZXIgbG9va2luZyBkZWZhdWx0IGhvcml6b250YWwgcnVsZVxuICovXG5cbmhyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogUmVtb3ZlIHRoZSBnYXAgYmV0d2VlbiBhdWRpbywgY2FudmFzLCBpZnJhbWVzLFxuICogaW1hZ2VzLCB2aWRlb3MgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVyczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2lzc3Vlcy80NDBcbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJyb3dzZXIgVXBncmFkZSBQcm9tcHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5icm93c2VydXBncmFkZSB7XG4gICAgbWFyZ2luOiAwLjJlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEF1dGhvcidzIGN1c3RvbSBzdHlsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhlbHBlciBjbGFzc2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyczpcbiAqL1xuXG4uaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKi9cblxuLnZpc3VhbGx5aGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xufVxuXG4vKlxuICogRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50XG4gKiB0byBiZSBmb2N1c2FibGUgd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZDpcbiAqIGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvbm9kZS84OTc2MzhcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4vKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuICovXG5cbi5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cblxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMiAqL1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRVhBTVBMRSBNZWRpYSBRdWVyaWVzIGZvciBSZXNwb25zaXZlIERlc2lnbi5cbiAgIFRoZXNlIGV4YW1wbGVzIG92ZXJyaWRlIHRoZSBwcmltYXJ5ICgnbW9iaWxlIGZpcnN0Jykgc3R5bGVzLlxuICAgTW9kaWZ5IGFzIGNvbnRlbnQgcmVxdWlyZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgICAvKiBTdHlsZSBhZGp1c3RtZW50cyBmb3Igdmlld3BvcnRzIHRoYXQgbWVldCB0aGUgY29uZGl0aW9uICovXG59XG5cbkBtZWRpYSBwcmludCxcbiAgICAgICAobWluLXJlc29sdXRpb246IDEuMjVkcHB4KSxcbiAgICAgICAobWluLXJlc29sdXRpb246IDEyMGRwaSkge1xuICAgIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciBoaWdoIHJlc29sdXRpb24gZGV2aWNlcyAqL1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUHJpbnQgc3R5bGVzLlxuICAgSW5saW5lZCB0byBhdm9pZCB0aGUgYWRkaXRpb25hbCBIVFRQIHJlcXVlc3Q6XG4gICBodHRwOi8vd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSBwcmludCB7XG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyLFxuICAgICo6Zmlyc3QtbGV0dGVyLFxuICAgICo6Zmlyc3QtbGluZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBhW2hyZWZdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgfVxuXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAgKi9cblxuICAgIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBQcmludGluZyBUYWJsZXM6XG4gICAgICogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAgICovXG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cblxuLyogUmVtb3ZlIHRoZSB1bndhbnRlZCBib3ggYXJvdW5kIEZBQiBidXR0b25zICovXG4vKiBNb3JlIGluZm86IGh0dHA6Ly9nb28uZ2wvSVB3S2kgKi9cbmEsIC5tZGwtYWNjb3JkaW9uLCAubWRsLWJ1dHRvbiwgLm1kbC1jYXJkLCAubWRsLWNoZWNrYm94LCAubWRsLWRyb3Bkb3duLW1lbnUsXG4ubWRsLWljb24tdG9nZ2xlLCAubWRsLWl0ZW0sIC5tZGwtcmFkaW8sIC5tZGwtc2xpZGVyLCAubWRsLXN3aXRjaCwgLm1kbC10YWJzX190YWIge1xuXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbkBpZiAkdGFyZ2V0LWVsZW1lbnRzLWRpcmVjdGx5ID09IHRydWUge1xuICBodG1sLCBib2R5IHtcbiAgICBmb250LWZhbWlseTogJHBlcmZvcm1hbmNlX2ZvbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qKlxuICAqIFN0eWxlcyBmb3IgSFRNTCBlbGVtZW50c1xuICAqL1xuXG4gIGgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwge1xuICAgIEBpbmNsdWRlIHR5cG8tZGlzcGxheS0zKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcblxuICAgIGZvbnQtc2l6ZTogMC42ZW07XG4gIH1cblxuICBoMSB7XG4gICAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTM7XG5cbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBoMiB7XG4gICAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTI7XG5cbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBoMyB7XG4gICAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTE7XG5cbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICBoNCB7XG4gICAgQGluY2x1ZGUgdHlwby1oZWFkbGluZTtcblxuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gIGg1IHtcbiAgICBAaW5jbHVkZSB0eXBvLXRpdGxlO1xuXG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgaDYge1xuICAgIEBpbmNsdWRlIHR5cG8tc3ViaGVhZDtcblxuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gIHAge1xuICAgIEBpbmNsdWRlIHR5cG8tYm9keS0xO1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkdGV4dC1saW5rLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSB0eXBvLWJsb2NrcXVvdGU7XG4gIH1cblxuICBtYXJrIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxO1xuICB9XG5cbiAgZHQge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBhZGRyZXNzIHtcbiAgICBAaW5jbHVkZSB0eXBvLWNhcHRpb247XG5cbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICB1bCwgb2wge1xuICAgIEBpbmNsdWRlIHR5cG8tYm9keS0xO1xuICB9XG59XG5cbi8qKlxuICogQ2xhc3MgTmFtZSBTdHlsZXNcbiAqL1xuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktNCB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS00O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktNC1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS00KCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMge1xuICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMztcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWRpc3BsYXktMygkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0yIHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTI7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1kaXNwbGF5LTIoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMSB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS0xO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMS1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tZGlzcGxheS0xKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZSB7XG4gIEBpbmNsdWRlIHR5cG8taGVhZGxpbmU7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0taGVhZGxpbmUtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWhlYWRsaW5lKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZSB7XG4gIEBpbmNsdWRlIHR5cG8tdGl0bGU7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGl0bGUtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLXRpdGxlKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1zdWJoZWFkIHtcbiAgQGluY2x1ZGUgdHlwby1zdWJoZWFkO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLXN1YmhlYWQoJGNvbG9yQ29udHJhc3Q6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMiB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0yO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0yKCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEge1xuICBAaW5jbHVkZSB0eXBvLWJvZHktMTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWJvZHktMSgkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWZvcmNlLXByZWZlcnJlZC1mb250IHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTIoJHVzZVByZWZlcnJlZDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1ib2R5LTIoJGNvbG9yQ29udHJhc3Q6IHRydWUsICR1c2VQcmVmZXJyZWQ6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xKCR1c2VQcmVmZXJyZWQ6IHRydWUpO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xKCRjb2xvckNvbnRyYXN0OiB0cnVlLCAkdXNlUHJlZmVycmVkOiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1jYXB0aW9uIHtcbiAgQGluY2x1ZGUgdHlwby1jYXB0aW9uO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWNhcHRpb24tZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBAaW5jbHVkZSB0eXBvLWNhcHRpb24oJHVzZVByZWZlcnJlZDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tY2FwdGlvbigkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIEBpbmNsdWRlIHR5cG8tY2FwdGlvbigkY29sb3JDb250cmFzdDogdHJ1ZSwgJHVzZVByZWZlcnJlZDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudSB7XG4gIEBpbmNsdWRlIHR5cG8tbWVudTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1tZW51LWNvbG9yLWNvbnRyYXN0IHtcbiAgQGluY2x1ZGUgdHlwby1tZW51KCRjb2xvckNvbnRyYXN0OiB0cnVlKTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1idXR0b24ge1xuICBAaW5jbHVkZSB0eXBvLWJ1dHRvbjtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3Qge1xuICBAaW5jbHVkZSB0eXBvLWJ1dHRvbigkY29sb3JDb250cmFzdDogdHJ1ZSk7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tdGV4dC1sb3dlcmNhc2Uge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXRoaW4ge1xuICBmb250LXdlaWdodDogMjAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1saWdodCB7XG4gIGZvbnQtd2VpZ2h0OiAzMDAgIWltcG9ydGFudDtcbn1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1tZWRpdW0ge1xuICBmb250LXdlaWdodDogNTAwICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtdHlwb2dyYXBoeS0tZm9udC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50O1xufVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYmxhY2sge1xuICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbkBpZiAkdHJpbS1jb2xvci1jbGFzc2VzID09IGZhbHNlIHtcbiAgLy8gUmVkXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcmVkLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcmVkLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcmVkLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXJlZC1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXJlZC1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcmVkLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1yZWQtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1yZWQtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1yZWQtQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXJlZC1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFBpbmtcblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmsge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1waW5rLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXBpbmstQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXBpbmstQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcGluay1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcGluay1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcGluay1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXBpbmstQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1waW5rLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1waW5rLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gUHVycGxlXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tcHVycGxlLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tcHVycGxlLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXB1cnBsZS1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtcHVycGxlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1wdXJwbGUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1wdXJwbGUtQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXB1cnBsZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIERlZXAgUHVycGxlLlxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLXB1cnBsZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtcHVycGxlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1wdXJwbGUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBJbmRpZ29cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnbyB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1pbmRpZ28tQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0taW5kaWdvLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0taW5kaWdvLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1pbmRpZ28tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWluZGlnby1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWluZGlnby1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWluZGlnby1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtaW5kaWdvLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gQmx1ZVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsdWUtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJsdWUtQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBMaWdodCBCbHVlXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ibHVlLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWJsdWUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ibHVlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtYmx1ZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIEN5YW5cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4ge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1jeWFuLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWN5YW4tQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWN5YW4tQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tY3lhbi1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtY3lhbi1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWN5YW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1jeWFuLUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1jeWFuLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gVGVhbFxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXRlYWwtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tdGVhbC1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS10ZWFsLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS10ZWFsLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS10ZWFsLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtdGVhbC1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXRlYWwtQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXRlYWwtQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBHcmVlblxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4ge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JlZW4tNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmVlbi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmVlbi05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZWVuLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZWVuLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmVlbi1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JlZW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBMaWdodCBHcmVlblxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4ge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saWdodC1ncmVlbi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpZ2h0LWdyZWVuLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGlnaHQtZ3JlZW4tQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBMaW1lXG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtQTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tbGltZS1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1saW1lLUEyMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1saW1lLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWxpbWUtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWxpbWUtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWxpbWUtQTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1saW1lLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tbGltZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtbGltZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC8vIFllbGxvd1xuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93IHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXllbGxvdy01MCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy0xMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTMwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy00MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTYwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy03MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LTkwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LUExMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLXllbGxvdy1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS15ZWxsb3ctQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLXllbGxvdy1BNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0teWVsbG93LUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUteWVsbG93LUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0teWVsbG93LUE3MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS15ZWxsb3ctQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBBbWJlclxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXIge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYW1iZXItNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYW1iZXItODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1hbWJlci04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1hbWJlci05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWFtYmVyLTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWFtYmVyLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLUExMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLUEyMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci1BMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci1BNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWFtYmVyLUE3MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1hbWJlci1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYW1iZXItQTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBPcmFuZ2VcblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNTAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0zMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtNDAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS02MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS05MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS1BMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS1BMTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtQTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtQTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1vcmFuZ2UtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS1BMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUE0MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tb3JhbmdlLUE0MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1vcmFuZ2UtQTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLW9yYW5nZS1BNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLW9yYW5nZS1BNzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtb3JhbmdlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gRGVlcCBPcmFuZ2VcblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZGVlcC1vcmFuZ2UtODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1kZWVwLW9yYW5nZS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUExMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUEyMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUE0MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS1BNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWRlZXAtb3JhbmdlLUE3MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gQnJvd25cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTUwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTUwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi0xMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTIwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tMjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tMjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTMwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi0zMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi00MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tNTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTYwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi02MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1icm93bi03MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWJyb3duLTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJyb3duLTgwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYnJvd24tODAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYnJvd24tODAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYnJvd24tOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJyb3duLTkwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1icm93bi05MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1icm93bi05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gR3JleVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleSB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS01MCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTEwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTEwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS0yMDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS0yMDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTIwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktMzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktMzAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTQwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTQwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNDAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS01MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS01MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNjAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktNjAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ncmV5LTcwMCB7XG4gICAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTcwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ncmV5LTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktNzAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tZ3JleS04MDAge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tZ3JleS04MDAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ncmV5LTgwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWdyZXktOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWdyZXktOTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItLWdyZXktOTAwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtZ3JleS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gQmx1ZSBHcmV5XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXkge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JHBhbGV0dGUtYmx1ZS1ncmV5LTUwMH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLWdyZXktNTAwfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTUwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS01MH0pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLS1ibHVlLWdyZXktNTAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skcGFsZXR0ZS1ibHVlLWdyZXktNTB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTEwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0xMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTIwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0yMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTMwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS0zMDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNDAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTQwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS00MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTUwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS01MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNjAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTYwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS02MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNzAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTcwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS03MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktODAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTgwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS04MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktOTAwIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTkwMCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRwYWxldHRlLWJsdWUtZ3JleS05MDB9KVwiKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gQmxhY2tcblxuICAubWRsLWNvbG9yLS1ibGFjayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1ibGFja30pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAubWRsLWNvbG9yLXRleHQtLWJsYWNrIHtcbiAgICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1ibGFja30pXCIpICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBXaGl0ZVxuXG4gIC5tZGwtY29sb3ItLXdoaXRlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXdoaXRlfSlcIikgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5tZGwtY29sb3ItdGV4dC0td2hpdGUge1xuICAgIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXdoaXRlfSlcIikgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyBQcmltYXJ5IGFuZCBhY2NlbnRcblxuLm1kbC1jb2xvci0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeX0pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItLXByaW1hcnktY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnktY29udHJhc3R9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLS1wcmltYXJ5LWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLXByaW1hcnktZGFya30pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItLWFjY2VudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItYWNjZW50fSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci0tYWNjZW50LWNvbnRyYXN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnQtY29udHJhc3R9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnkge1xuICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1wcmltYXJ5fSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWNvbnRyYXN0IHtcbiAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeS1jb250cmFzdH0pXCIpICFpbXBvcnRhbnQ7XG59XG5cbi5tZGwtY29sb3ItdGV4dC0tcHJpbWFyeS1kYXJrIHtcbiAgY29sb3I6IHVucXVvdGUoXCJyZ2IoI3skY29sb3ItcHJpbWFyeS1kYXJrfSlcIikgIWltcG9ydGFudDtcbn1cblxuLm1kbC1jb2xvci10ZXh0LS1hY2NlbnQge1xuICBjb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci1hY2NlbnR9KVwiKSAhaW1wb3J0YW50O1xufVxuXG4ubWRsLWNvbG9yLXRleHQtLWFjY2VudC1jb250cmFzdCB7XG4gIGNvbG9yOiB1bnF1b3RlKFwicmdiKCN7JGNvbG9yLWFjY2VudC1jb250cmFzdH0pXCIpICFpbXBvcnRhbnQ7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGwtcmlwcGxlIHtcbiAgYmFja2dyb3VuZCAgICAgICA6ICRyaXBwbGUtYmctY29sb3I7XG4gIGJvcmRlci1yYWRpdXMgICAgOiA1MCU7XG4gIGhlaWdodCAgICAgICAgICAgOiA1MHB4O1xuICBsZWZ0ICAgICAgICAgICAgIDogMDtcbiAgb3BhY2l0eSAgICAgICAgICA6IDA7XG4gIHBvaW50ZXItZXZlbnRzICAgOiBub25lO1xuICBwb3NpdGlvbiAgICAgICAgIDogYWJzb2x1dGU7XG4gIHRvcCAgICAgICAgICAgICAgOiAwO1xuICB0cmFuc2Zvcm0gICAgICAgIDogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aCAgICAgICAgICAgIDogNTBweDtcbiAgb3ZlcmZsb3cgICAgICAgICA6IGhpZGRlbjtcblxuICAmLmlzLWFuaW1hdGluZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW4sXG4gICAgd2lkdGggMC4zcyAkYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbixcbiAgICBoZWlnaHQgMC4zcyAkYW5pbWF0aW9uLWN1cnZlLWxpbmVhci1vdXQtc2xvdy1pbixcbiAgICBvcGFjaXR5IDAuNnMgJGFuaW1hdGlvbi1jdXJ2ZS1saW5lYXItb3V0LXNsb3ctaW47XG4gIH1cblxuICAmLmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG5cbi5tZGwtYW5pbWF0aW9uLS1kZWZhdWx0IHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbn1cblxuLm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJGFuaW1hdGlvbi1jdXJ2ZS1mYXN0LW91dC1zbG93LWluO1xufVxuXG4ubWRsLWFuaW1hdGlvbi0tbGluZWFyLW91dC1zbG93LWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluO1xufVxuXG4ubWRsLWFuaW1hdGlvbi0tZmFzdC1vdXQtbGluZWFyLWluIHtcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtbGluZWFyLWluO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLWJhZGdlIHtcbiAgcG9zaXRpb24gOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAoJGJhZGdlLXNpemUgKyAkYmFkZ2UtcGFkZGluZyk7XG5cbiAgJjpub3QoW2RhdGEtYmFkZ2VdKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICB9XG5cbiAgJltkYXRhLWJhZGdlXTphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJhZGdlKTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtKCRiYWRnZS1zaXplIC8gMik7XG4gICAgcmlnaHQ6IC0oJGJhZGdlLXNpemUgKyAkYmFkZ2UtcGFkZGluZyk7XG5cbiAgICAubWRsLWJ1dHRvbiAmIHtcbiAgICAgIHRvcDogLTEwcHg7XG4gICAgICByaWdodDogLTVweDtcbiAgICB9XG5cbiAgICBmb250LWZhbWlseTogJHByZWZlcnJlZF9mb250O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAkYmFkZ2UtZm9udC1zaXplO1xuICAgIHdpZHRoOiAkYmFkZ2Utc2l6ZTtcbiAgICBoZWlnaHQ6ICRiYWRnZS1zaXplO1xuICAgIGJvcmRlci1yYWRpdXMgOiA1MCU7XG5cbiAgICBiYWNrZ3JvdW5kOiAkYmFkZ2UtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGJhZGdlLWNvbG9yO1xuICB9XG5cbiAgJi5tZGwtYmFkZ2UtLW5vLWJhY2tncm91bmQge1xuICAgICZbZGF0YS1iYWRnZV06YWZ0ZXIge1xuICAgICAgY29sb3I6ICRiYWRnZS1jb2xvci1pbnZlcnNlO1xuICAgICAgYmFja2dyb3VuZDogJGJhZGdlLWJhY2tncm91bmQtaW52ZXJzZTtcblxuICAgICAgYm94LXNoYWRvdzogMCAwIDFweCBncmF5O1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBUaGUgYnV0dG9uIGNvbXBvbmVudC4gRGVmYXVsdHMgdG8gYSBmbGF0IGJ1dHRvbi5cbi5tZGwtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1ib3JkZXItcmFkaXVzO1xuICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3I7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkYnV0dG9uLWhlaWdodDtcbiAgbWluLXdpZHRoOiAkYnV0dG9uLW1pbi13aWR0aDtcbiAgcGFkZGluZzogMCAkYnV0dG9uLXBhZGRpbmc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgQGluY2x1ZGUgdHlwby1idXR0b24oKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lsbC1jaGFuZ2U6IGJveC1zaGFkb3csIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtbGluZWFyLWluLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICAgICAgICAgICAgICBjb2xvciAwLjJzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6ICRidXR0b24taGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24taG92ZXItY29sb3I7XG4gIH1cblxuICAmOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1mb2N1cy1jb2xvcjtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWFjdGl2ZS1jb2xvcjtcbiAgfVxuXG4gICYubWRsLWJ1dHRvbi0tY29sb3JlZCB7XG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvci1hbHQ7XG5cbiAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWZvY3VzLWNvbG9yLWFsdDtcbiAgICB9XG4gIH1cbn1cblxuaW5wdXQubWRsLWJ1dHRvblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XG59XG5cbiAgLy8gUmFpc2VkIGJ1dHRvbnNcbiAgLm1kbC1idXR0b24tLXJhaXNlZCB7XG4gICAgYmFja2dyb3VuZDogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yO1xuICAgIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYWN0aXZlLWNvbG9yO1xuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIEBpbmNsdWRlIGZvY3VzLXNoYWRvdygpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRidXR0b24tcHJpbWFyeS1jb2xvci1hbHQ7XG4gICAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYWx0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1ob3Zlci1jb2xvci1hbHQ7XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3ItYWx0O1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYWN0aXZlLWNvbG9yLWFsdDtcbiAgICAgIH1cblxuICAgICAgJiAubWRsLXJpcHBsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRidXR0b24tcmlwcGxlLWNvbG9yLWFsdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC8vIEZBQnNcbiAgLm1kbC1idXR0b24tLWZhYiB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZvbnQtc2l6ZTogJGJ1dHRvbi1mYWItZm9udC1zaXplO1xuICAgIGhlaWdodDogJGJ1dHRvbi1mYWItc2l6ZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgbWluLXdpZHRoOiAkYnV0dG9uLWZhYi1zaXplO1xuICAgIHdpZHRoOiAkYnV0dG9uLWZhYi1zaXplO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLXByaW1hcnktY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMS41cHggMCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAxcHggMCByZ2JhKDAsMCwwLDAuMjQpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgJiAubWF0ZXJpYWwtaWNvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtICRidXR0b24tZmFiLWZvbnQtc2l6ZSAvIDIsIC0gJGJ1dHRvbi1mYWItZm9udC1zaXplIC8gMik7XG4gICAgICBsaW5lLWhlaWdodDogJGJ1dHRvbi1mYWItZm9udC1zaXplO1xuICAgICAgd2lkdGg6ICRidXR0b24tZmFiLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmLm1kbC1idXR0b24tLW1pbmktZmFiIHtcbiAgICAgIGhlaWdodDogJGJ1dHRvbi1mYWItc2l6ZS1taW5pO1xuICAgICAgbWluLXdpZHRoOiAkYnV0dG9uLWZhYi1zaXplLW1pbmk7XG4gICAgICB3aWR0aDogJGJ1dHRvbi1mYWItc2l6ZS1taW5pO1xuICAgIH1cblxuICAgICYgLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgLy8gRml4ZXMgY2xpcHBpbmcgYnVnIGluIFNhZmFyaS5cbiAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tYWN0aXZlLWNvbG9yO1xuICAgIH1cblxuICAgICY6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIEBpbmNsdWRlIGZvY3VzLXNoYWRvdygpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1hY3RpdmUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRidXR0b24tZmFiLWNvbG9yLWFsdDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLWZhYi10ZXh0LWNvbG9yLWFsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZmFiLWhvdmVyLWNvbG9yLWFsdDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWZhYi1hY3RpdmUtY29sb3ItYWx0O1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZmFiLWFjdGl2ZS1jb2xvci1hbHQ7XG4gICAgICB9XG5cbiAgICAgICYgLm1kbC1yaXBwbGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLWZhYi1yaXBwbGUtY29sb3ItYWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gSWNvbiBidXR0b25zXG4gIC5tZGwtYnV0dG9uLS1pY29uIHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uLWZhYi1mb250LXNpemU7XG4gICAgaGVpZ2h0OiAkYnV0dG9uLWljb24tc2l6ZTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWluLXdpZHRoOiAkYnV0dG9uLWljb24tc2l6ZTtcbiAgICB3aWR0aDogJGJ1dHRvbi1pY29uLXNpemU7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0gJGJ1dHRvbi1mYWItZm9udC1zaXplIC8gMiwgLSAkYnV0dG9uLWZhYi1mb250LXNpemUgLyAyKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uLWZhYi1mb250LXNpemU7XG4gICAgICB3aWR0aDogJGJ1dHRvbi1mYWItZm9udC1zaXplO1xuICAgIH1cblxuICAgICYubWRsLWJ1dHRvbi0tbWluaS1pY29uIHtcbiAgICAgIGhlaWdodDogJGJ1dHRvbi1pY29uLXNpemUtbWluaTtcbiAgICAgIG1pbi13aWR0aDogJGJ1dHRvbi1pY29uLXNpemUtbWluaTtcbiAgICAgIHdpZHRoOiAkYnV0dG9uLWljb24tc2l6ZS1taW5pO1xuXG4gICAgICAmIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICAgIHRvcDogKCRidXR0b24taWNvbi1zaXplLW1pbmkgLSAkYnV0dG9uLWZhYi1mb250LXNpemUpIC8gMjtcbiAgICAgICAgbGVmdDogKCRidXR0b24taWNvbi1zaXplLW1pbmkgLSAkYnV0dG9uLWZhYi1mb250LXNpemUpIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIC8vIEZpeGVzIGNsaXBwaW5nIGJ1ZyBpbiBTYWZhcmkuXG4gICAgICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJpcHBsZXNcbiAgLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5tZGwtYnV0dG9uW2Rpc2FibGVkXSAmIC5tZGwtcmlwcGxlLFxuICAgIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWRpc2FibGVkICYgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbi8vIENvbG9yaXplZCBidXR0b25zXG5cbi5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXByaW1hcnkge1xuICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWNvbG9yLWFsdDtcbiAgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItYWx0O1xuICB9XG4gICYubWRsLWJ1dHRvbi0tcmFpc2VkLCAmLm1kbC1idXR0b24tLWZhYiB7XG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWNvbG9yLWFsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLXByaW1hcnktY29sb3ItYWx0O1xuICB9XG59XG5cbi5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50IHtcbiAgY29sb3I6ICRidXR0b24tZmFiLWNvbG9yLWFsdDtcbiAgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogJGJ1dHRvbi1mYWItdGV4dC1jb2xvci1hbHQ7XG4gIH1cbiAgJi5tZGwtYnV0dG9uLS1yYWlzZWQsICYubWRsLWJ1dHRvbi0tZmFiIHtcbiAgICBjb2xvcjogJGJ1dHRvbi1mYWItdGV4dC1jb2xvci1hbHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1mYWItY29sb3ItYWx0O1xuICB9XG59XG5cbi8vIERpc2FibGVkIGJ1dHRvbnNcblxuLm1kbC1idXR0b24ge1xuICAvLyBCdW1wIHVwIHNwZWNpZmljaXR5IGJ5IHVzaW5nIFtkaXNhYmxlZF0gdHdpY2UuXG4gICZbZGlzYWJsZWRdW2Rpc2FibGVkXSxcbiAgJi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRidXR0b24tc2Vjb25kYXJ5LWNvbG9yLWRpc2FibGVkO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gICYtLWZhYiB7XG4gICAgLy8gQnVtcCB1cCBzcGVjaWZpY2l0eSBieSB1c2luZyBbZGlzYWJsZWRdIHR3aWNlLlxuICAgICZbZGlzYWJsZWRdW2Rpc2FibGVkXSxcbiAgICAmLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tcHJpbWFyeS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLXNlY29uZGFyeS1jb2xvci1kaXNhYmxlZDtcbiAgICAgIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbiAgICB9XG4gIH1cblxuICAmLS1yYWlzZWQge1xuICAgIC8vIEJ1bXAgdXAgc3BlY2lmaWNpdHkgYnkgdXNpbmcgW2Rpc2FibGVkXSB0d2ljZS5cbiAgICAmW2Rpc2FibGVkXVtkaXNhYmxlZF0sXG4gICAgJi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLXByaW1hcnktY29sb3ItZGlzYWJsZWQ7XG4gICAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItZGlzYWJsZWQ7XG4gICAgICBAaW5jbHVkZSBzaGFkb3ctMmRwKCk7XG4gICAgfVxuICB9XG4gICYtLWNvbG9yZWQge1xuICAgIC8vIEJ1bXAgdXAgc3BlY2lmaWNpdHkgYnkgdXNpbmcgW2Rpc2FibGVkXSB0d2ljZS5cbiAgICAmW2Rpc2FibGVkXVtkaXNhYmxlZF0sXG4gICAgJi5tZGwtYnV0dG9uLS1kaXNhYmxlZC5tZGwtYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogJGJ1dHRvbi1zZWNvbmRhcnktY29sb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEFsaWduIGljb25zIGluc2lkZSBidXR0b25zIHdpdGggdGV4dFxuLm1kbC1idXR0b24gLm1hdGVyaWFsLWljb25zIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kbC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZm9udC1zaXplOiAkY2FyZC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIG1pbi1oZWlnaHQ6ICRjYXJkLWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6ICRjYXJkLXdpZHRoO1xuICB6LWluZGV4OiAkY2FyZC16LWluZGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1kbC1jYXJkX19tZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWltYWdlLXBsYWNlaG9sZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWRsLWNhcmRfX3RpdGxlIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6ICRjYXJkLXRleHQtY29sb3I7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6ICRjYXJkLXZlcnRpY2FsLXBhZGRpbmcgJGNhcmQtaG9yaXpvbnRhbC1wYWRkaW5nO1xuICBwZXJzcGVjdGl2ZS1vcmlnaW46ICRjYXJkLXRpdGxlLXBlcnNwZWN0aXZlLW9yaWdpbi14ICRjYXJkLXRpdGxlLXBlcnNwZWN0aXZlLW9yaWdpbi15O1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAkY2FyZC10aXRsZS10cmFuc2Zvcm0tb3JpZ2luLXggJGNhcmQtdGl0bGUtdHJhbnNmb3JtLW9yaWdpbi15O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICYubWRsLWNhcmQtLWJvcmRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjYXJkLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG4ubWRsLWNhcmRfX3RpdGxlLXRleHQge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6ICRjYXJkLXRpdGxlLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRjYXJkLXRpdGxlLXRleHQtZm9udC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zZm9ybS1vcmlnaW46ICRjYXJkLXRpdGxlLXRleHQtdHJhbnNmb3JtLW9yaWdpbi14ICRjYXJkLXRpdGxlLXRleHQtdHJhbnNmb3JtLW9yaWdpbi15O1xuICBtYXJnaW46IDA7XG59XG5cbi5tZGwtY2FyZF9fc3VidGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogJGNhcmQtc3VidGl0bGUtZm9udC1zaXplO1xuICBjb2xvcjogJGNhcmQtc3VidGl0bGUtY29sb3I7XG4gIG1hcmdpbjogMDtcbn1cblxuLm1kbC1jYXJkX19zdXBwb3J0aW5nLXRleHQge1xuICBjb2xvcjogJGNhcmQtc3VwcG9ydGluZy10ZXh0LXRleHQtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNhcmQtc3VwcG9ydGluZy10ZXh0LWZvbnQtc2l6ZTtcbiAgbGluZS1oZWlnaHQ6ICRjYXJkLXN1cHBvcnRpbmctdGV4dC1saW5lLWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogJGNhcmQtdmVydGljYWwtcGFkZGluZyAkY2FyZC1ob3Jpem9udGFsLXBhZGRpbmc7XG4gIHdpZHRoOiA5MCU7XG59XG5cbi5tZGwtY2FyZF9fYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogJGNhcmQtYWN0aW9ucy1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJi5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNhcmQtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cbi5tZGwtY2FyZC0tZXhwYW5kIHtcbiAgZmxleC1ncm93OiAxO1xufVxuXG5cbi5tZGwtY2FyZF9fbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRvcDogMTZweDtcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICB6LWluZGV4OiAxO1xuXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjaGVja2JveC1sYWJlbC1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICAmLmlzLXVwZ3JhZGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjaGVja2JveC1idXR0b24tc2l6ZSArICRjaGVja2JveC1wYWRkaW5nO1xuICB9XG59XG5cbi5tZGwtY2hlY2tib3hfX2lucHV0IHtcbiAgbGluZS1oZWlnaHQ6ICRjaGVja2JveC1sYWJlbC1oZWlnaHQ7XG5cbiAgLm1kbC1jaGVja2JveC5pcy11cGdyYWRlZCAmIHtcbiAgICAvLyBIaWRlIGlucHV0IGVsZW1lbnQsIHdoaWxlIHN0aWxsIG1ha2luZyBpdCByZXNwb25kIHRvIGZvY3VzLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICRjaGVja2JveC10b3Atb2Zmc2V0O1xuICBsZWZ0OiAwO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJGNoZWNrYm94LWJ1dHRvbi1zaXplO1xuICBoZWlnaHQ6ICRjaGVja2JveC1idXR0b24tc2l6ZTtcbiAgbWFyZ2luOiAwO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBib3JkZXI6IDJweCBzb2xpZCAkY2hlY2tib3gtb2ZmLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgei1pbmRleDogMjtcblxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgJiB7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGNoZWNrYm94LWNvbG9yO1xuICB9XG5cbiAgLm1kbC1jaGVja2JveC5pcy1kaXNhYmxlZCAmIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY2hlY2tib3gtZGlzYWJsZWQtY29sb3I7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAkY2hlY2tib3gtdG9wLW9mZnNldDtcbiAgbGVmdDogMDtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRjaGVja2JveC1idXR0b24tc2l6ZTtcbiAgaGVpZ2h0OiAkY2hlY2tib3gtYnV0dG9uLXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblxuICAubWRsLWNoZWNrYm94LmlzLWZvY3VzZWQgJiB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAoJGNoZWNrYm94LWJ1dHRvbi1zaXplIC8gMikgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxuXG4gIC5tZGwtY2hlY2tib3guaXMtZm9jdXNlZC5pcy1jaGVja2VkICYge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggKCRjaGVja2JveC1idXR0b24tc2l6ZSAvIDIpICRjaGVja2JveC1mb2N1cy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hlY2tib3gtZm9jdXMtY29sb3I7XG4gIH1cbn1cblxuLm1kbC1jaGVja2JveF9fdGljay1vdXRsaW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hc2s6IHVybChcIiN7JGNoZWNrYm94LWltYWdlLXBhdGh9L3RpY2stbWFzay5zdmc/ZW1iZWRcIik7XG5cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KDAuMjhzKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZDtcblxuICAubWRsLWNoZWNrYm94LmlzLWNoZWNrZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJGNoZWNrYm94LWNvbG9yIHVybChcIiN7JGNoZWNrYm94LWltYWdlLXBhdGh9L3RpY2suc3ZnP2VtYmVkXCIpO1xuICB9XG5cbiAgLm1kbC1jaGVja2JveC5pcy1jaGVja2VkLmlzLWRpc2FibGVkICYge1xuICAgIGJhY2tncm91bmQ6ICRjaGVja2JveC1kaXNhYmxlZC1jb2xvciB1cmwoXCIjeyRjaGVja2JveC1pbWFnZS1wYXRofS90aWNrLnN2Zz9lbWJlZFwiKTtcbiAgfVxufVxuXG4ubWRsLWNoZWNrYm94X19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6ICRjaGVja2JveC1sYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkY2hlY2tib3gtbGFiZWwtaGVpZ2h0O1xuICBtYXJnaW46IDA7XG5cbiAgLm1kbC1jaGVja2JveC5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogJGNoZWNrYm94LWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWRsLWNoZWNrYm94X19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC0oKCRjaGVja2JveC1yaXBwbGUtc2l6ZSAtICRjaGVja2JveC1sYWJlbC1oZWlnaHQpIC8gMik7XG4gIGxlZnQ6IC0oKCRjaGVja2JveC1yaXBwbGUtc2l6ZSAtICRjaGVja2JveC1idXR0b24tc2l6ZSkgLyAyKTtcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJGNoZWNrYm94LXJpcHBsZS1zaXplO1xuICBoZWlnaHQ6ICRjaGVja2JveC1yaXBwbGUtc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTtcblxuICAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2hlY2tib3gtY29sb3I7XG4gIH1cblxuICAubWRsLWNoZWNrYm94LmlzLWRpc2FibGVkICYge1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6ICRkYXRhLXRhYmxlLWRpdmlkZXJzO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6ICRkYXRhLXRhYmxlLWZvbnQtc2l6ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdW5xdW90ZShcInJnYigjeyRjb2xvci13aGl0ZX0pXCIpO1xuXG4gIHRoZWFkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuXG4gICAgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB7XG4gICAgdHIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiAkZGF0YS10YWJsZS1yb3ctaGVpZ2h0O1xuICAgICAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoMC4yOHMpO1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgJi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXRhLXRhYmxlLXNlbGVjdGlvbi1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXRhLXRhYmxlLWhvdmVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRkLCB0aCB7XG4gICAgcGFkZGluZzogMCAkZGF0YS10YWJsZS1jb2x1bW4tcGFkZGluZyAwICRkYXRhLXRhYmxlLWNvbHVtbi1wYWRkaW5nO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBoZWlnaHQ6ICRkYXRhLXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgYm9yZGVyLXRvcDogJGRhdGEtdGFibGUtZGl2aWRlcnM7XG4gICAgYm9yZGVyLWJvdHRvbTogJGRhdGEtdGFibGUtZGl2aWRlcnM7XG4gICAgcGFkZGluZy10b3A6ICRkYXRhLXRhYmxlLWNlbGwtdG9wO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAubWRsLWRhdGEtdGFibGVfX3NlbGVjdCB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMjRweDtcbiAgICB9XG4gIH1cblxuICB0aCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgQGluY2x1ZGUgdHlwby1ib2R5LTIoKTtcbiAgICBoZWlnaHQ6ICRkYXRhLXRhYmxlLXJvdy1oZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZGF0YS10YWJsZS1oZWFkZXItZm9udC1zaXplO1xuICAgIGNvbG9yOiAkZGF0YS10YWJsZS1oZWFkZXItY29sb3I7XG4gICAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiAyNHB4O1xuICAgIH1cbiAgfVxufVxuXG4ubWRsLWRhdGEtdGFibGVfX3NlbGVjdCB7XG4gIHdpZHRoOiAxNnB4O1xufVxuXG4ubWRsLWRhdGEtdGFibGVfX2NlbGwtLW5vbi1udW1lcmljLm1kbC1kYXRhLXRhYmxlX19jZWxsLS1ub24tbnVtZXJpYyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi5tZGwtbWVnYS1mb290ZXIge1xuICBwYWRkaW5nOiAkZm9vdGVyLW1pbi1wYWRkaW5nICRmb290ZXItcGFkZGluZy1zaWRlcztcblxuICBjb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1iZy1jb2xvcjtcbn1cblxuXG4ubWRsLW1lZ2EtZm9vdGVyLS10b3Atc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXItLW1pZGRsZS1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX190b3Atc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX21pZGRsZS1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb246YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206ICRmb290ZXItbWluLXBhZGRpbmc7XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24gYSxcbi5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIG1hcmdpbi1ib3R0b206ICRmb290ZXItbWluLXBhZGRpbmc7XG5cbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG5cbiAgLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLFxuICAubWRsLW1lZ2EtZm9vdGVyX19yaWdodC1zZWN0aW9uIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIG1hcmdpbi1sZWZ0OiAkZm9vdGVyLW1pbi1wYWRkaW5nO1xuXG4gICAgbGluZS1oZWlnaHQ6ICRmb290ZXItYnRuLXNpemU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1zb2NpYWwtYnRuLFxuLm1kbC1tZWdhLWZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gIHdpZHRoOiAkZm9vdGVyLWJ0bi1zaXplO1xuICBoZWlnaHQ6ICRmb290ZXItYnRuLXNpemU7XG5cbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItYnV0dG9uLWZpbGwtY29sb3I7XG5cbiAgYm9yZGVyOiBub25lO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbixcbi5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb24ge1xuICAgIHdpZHRoOiAzMyU7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDEpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG5cbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMykge1xuICAgIGZsb2F0OiByaWdodDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgY2xlYXI6IHJpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpIHtcbiAgICBjbGVhcjogcmlnaHQ7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICB9XG5cbiAgLm1kbC1tZWdhLWZvb3Rlci0tbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX21pZGRsZS1zZWN0aW9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cblxuICAubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gICAgd2lkdGg6IDI0JTtcblxuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkZm9vdGVyLWhlYWRpbmctbGluZS1oZWlnaHQgKyAoJGZvb3Rlci1taW4tcGFkZGluZyAqIDIpO1xuXG4gIHBhZGRpbmc6ICgkZm9vdGVyLW1pbi1wYWRkaW5nICogMik7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogLSRmb290ZXItbWluLXBhZGRpbmc7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIHotaW5kZXg6IDE7XG4gIG9wYWNpdHk6IDA7XG5cbiAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gICYgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICBjb250ZW50OiAnXFxFNUNFJ1xuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB7XG4gIC8vIFdlYlZpZXdzIGluIGlPUyA5IGJyZWFrIHRoZSBcIn5cIiBvcGVyYXRvciwgYW5kIFdlYlZpZXdzIGluIE9TIFggMTAuMTBcbiAgLy8gYnJlYWsgY29uc2VjdXRpdmUgXCIrXCIgb3BlcmF0b3JzIGluIHNvbWUgY2FzZXMuIFRoZXJlZm9yZSwgd2UgbmVlZCB0byB1c2VcbiAgLy8gYm90aCBoZXJlIHRvIGNvdmVyIGFsbCB0aGUgYmFzZXMuXG4gICYgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gICYgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gICYgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAmICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAmICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gICAgY29udGVudDogJ1xcRTVDRidcbiAgfVxufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgcGFkZGluZy1yaWdodDogJGZvb3Rlci1oZWFkaW5nLWxpbmUtaGVpZ2h0ICsgJGZvb3Rlci1taW4tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZztcblxuICBib3gtc2l6aW5nOmJvcmRlci1ib3g7XG5cbiAgZm9udC1zaXplOiAkZm9vdGVyLWhlYWRpbmctZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJGZvb3Rlci1oZWFkaW5nLWxpbmUtaGVpZ2h0O1xuXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgY29sb3I6ICRmb290ZXItaGVhZGluZy1jb2xvcjtcbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgd2lkdGg6ICRmb290ZXItaGVhZGluZy1saW5lLWhlaWdodDtcbiAgaGVpZ2h0OiAkZm9vdGVyLWhlYWRpbmctbGluZS1oZWlnaHQ7XG5cbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZyAqIDI7XG4gICY6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBsaSxcbi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCBsaSB7XG4gIEBpbmNsdWRlIHR5cG8tYm9keS0xKCk7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgYSxcbi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYgKyAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nOmFmdGVyLFxuICAgICYgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxuICB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIHtcbiAgICAvLyBXZWJWaWV3cyBpbiBpT1MgOSBicmVhayB0aGUgXCJ+XCIgb3BlcmF0b3IsIGFuZCBXZWJWaWV3cyBpbiBPUyBYIDEwLjEwXG4gICAgLy8gYnJlYWsgY29uc2VjdXRpdmUgXCIrXCIgb3BlcmF0b3JzIGluIHNvbWUgY2FzZXMuIFRoZXJlZm9yZSwgd2UgbmVlZCB0byB1c2VcbiAgICAvLyBib3RoIGhlcmUgdG8gY292ZXIgYWxsIHRoZSBiYXNlcy5cbiAgICAmIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAgICYgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gICAgJiArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG59XG5cbi5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fYm90dG9tLXNlY3Rpb24ge1xuICBwYWRkaW5nLXRvcDogJGZvb3Rlci1taW4tcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZztcbn1cblxuLm1kbC1sb2dvIHtcbiAgbWFyZ2luLWJvdHRvbTogJGZvb3Rlci1taW4tcGFkZGluZztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICBmbG9hdDogbGVmdDtcblxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tcmlnaHQ6ICRmb290ZXItbWluLXBhZGRpbmc7XG59XG5cblxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAubWRsLWxvZ28ge1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRmb290ZXItbWluLXBhZGRpbmc7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kbC1taW5pLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICBwYWRkaW5nOiAoJHBhZGRpbmcgKiAyKSAkcGFkZGluZztcblxuICBjb2xvcjogJGZvb3Rlci1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGZvb3Rlci1iZy1jb2xvcjtcblxuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICYgLm1kbC1sb2dvIHtcbiAgICBsaW5lLWhlaWdodDogJGZvb3Rlci1idG4tc2l6ZTtcbiAgfVxufVxuXG4ubWRsLW1pbmktZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG5cbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRwYWRkaW5nO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkZm9vdGVyLWJ0bi1zaXplO1xuICAgIH1cbiAgfVxuXG4gICYgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLm1kbC1taW5pLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuLm1kbC1taW5pLWZvb3Rlcl9fbGVmdC1zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcmRlcjogMDtcbn1cblxuLm1kbC1taW5pLWZvb3Rlci0tcmlnaHQtc2VjdGlvbixcbi5tZGwtbWluaS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9yZGVyOiAxO1xufVxuXG4ubWRsLW1pbmktZm9vdGVyLS1zb2NpYWwtYnRuLFxuLm1kbC1taW5pLWZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gIHdpZHRoOiAkZm9vdGVyLWJ0bi1zaXplO1xuICBoZWlnaHQ6ICRmb290ZXItYnRuLXNpemU7XG5cbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItYnV0dG9uLWZpbGwtY29sb3I7XG5cbiAgYm9yZGVyOiBub25lO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLWljb24tdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHotaW5kZXg6IDE7XG5cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogJGljb24tdG9nZ2xlLXNpemU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1kbC1pY29uLXRvZ2dsZV9faW5wdXQge1xuICBsaW5lLWhlaWdodDogJGljb24tdG9nZ2xlLXNpemU7XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy11cGdyYWRlZCAmIHtcbiAgICAvLyBIaWRlIGlucHV0IGVsZW1lbnQsIHdoaWxlIHN0aWxsIG1ha2luZyBpdCByZXNwb25kIHRvIGZvY3VzLlxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbi5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAkaWNvbi10b2dnbGUtc2l6ZTtcbiAgd2lkdGg6ICRpY29uLXRvZ2dsZS1zaXplO1xuICBtaW4td2lkdGg6ICRpY29uLXRvZ2dsZS1zaXplO1xuICBjb2xvcjogJGljb24tdG9nZ2xlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICBjb2xvciAwLjJzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcblxuICAmLm1hdGVyaWFsLWljb25zIHtcbiAgICBsaW5lLWhlaWdodDogJGljb24tdG9nZ2xlLXNpemU7XG4gICAgZm9udC1zaXplOiAkaWNvbi10b2dnbGUtZm9udC1zaXplO1xuICB9XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1jaGVja2VkICYge1xuICAgIGNvbG9yOiAkaWNvbi10b2dnbGUtY2hlY2tlZC1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgJiB7XG4gICAgY29sb3I6ICRpY29uLXRvZ2dsZS1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi10b2dnbGUtZm9jdXMtY29sb3I7XG4gIH1cblxuICAubWRsLWljb24tdG9nZ2xlLmlzLWZvY3VzZWQuaXMtY2hlY2tlZCAmIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi10b2dnbGUtY2hlY2tlZC1mb2N1cy1jb2xvcjtcbiAgfVxufVxuXG5cbi5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLSgoJGljb24tdG9nZ2xlLXJpcHBsZS1zaXplIC0gJGljb24tdG9nZ2xlLXNpemUpIC8gMik7XG4gIGxlZnQ6IC0oKCRpY29uLXRvZ2dsZS1yaXBwbGUtc2l6ZSAtICRpY29uLXRvZ2dsZS1zaXplKSAvIDIpO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkaWNvbi10b2dnbGUtcmlwcGxlLXNpemU7XG4gIGhlaWdodDogJGljb24tdG9nZ2xlLXJpcHBsZS1zaXplO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spO1xuXG4gICYgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6ICRpY29uLXRvZ2dsZS1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgJiB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4ubWRsLW1lbnVfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAtMTtcblxuICAmLmlzLXZpc2libGUsXG4gICYuaXMtYW5pbWF0aW5nIHtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4ubWRsLW1lbnVfX291dGxpbmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogJGRlZmF1bHQtZHJvcGRvd24tYmctY29sb3I7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRtZW51LWV4cGFuZC1kdXJhdGlvbiAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gICAgICBvcGFjaXR5ICRtZW51LWZhZGUtZHVyYXRpb24gJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xuICB6LWluZGV4OiAtMTtcblxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlICYge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB6LWluZGV4OiA5OTk7XG4gIH1cblxuICAmLm1kbC1tZW51LS1ib3R0b20tcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcbiAgfVxuXG4gICYubWRsLW1lbnUtLXRvcC1sZWZ0IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDEwMCU7XG4gIH1cblxuICAmLm1kbC1tZW51LS10b3AtcmlnaHQge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMTAwJTtcbiAgfVxufVxuXG4ubWRsLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAxMjRweDtcbiAgcGFkZGluZzogOHB4IDA7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgei1pbmRleDogLTE7XG5cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgfVxuXG4gICYuaXMtYW5pbWF0aW5nIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRtZW51LWZhZGUtZHVyYXRpb24gJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICAgICAgICBjbGlwICRtZW51LWV4cGFuZC1kdXJhdGlvbiAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG4gIH1cblxuICAmLm1kbC1tZW51LS1ib3R0b20tcmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAmLm1kbC1tZW51LS10b3AtbGVmdCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgfVxuXG4gICYubWRsLW1lbnUtLXRvcC1yaWdodCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICB9XG5cbiAgJi5tZGwtbWVudS0tdW5hbGlnbmVkIHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bztcbiAgfVxufVxuXG4ubWRsLW1lbnVfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogJGRlZmF1bHQtaXRlbS10ZXh0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDE2cHg7XG4gIG91dGxpbmUtY29sb3I6ICRkZWZhdWx0LWl0ZW0tb3V0bGluZS1jb2xvcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSB0eXBvLWJvZHktMSgpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAkbWVudS1mYWRlLWR1cmF0aW9uICRhbmltYXRpb24tY3VydmUtZGVmYXVsdDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgLm1kbC1tZW51X19jb250YWluZXIuaXMtdmlzaWJsZSAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgJltkaXNhYmxlZF0ge1xuICAgIGNvbG9yOiAkZGlzYWJsZWQtaXRlbS10ZXh0LWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogYXV0bztcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmIC5tZGwtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWl0ZW0taG92ZXItYmctY29sb3I7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWl0ZW0tZm9jdXMtYmctY29sb3I7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtaXRlbS1hY3RpdmUtYmctY29sb3I7XG4gIH1cbn1cblxuXG4ubWRsLW1lbnVfX2l0ZW0tLXJpcHBsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4ubWRsLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAkYmFyLWhlaWdodDtcbiAgd2lkdGg6IDUwMHB4O1xufVxuXG4ubWRsLXByb2dyZXNzID4gLmJhciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMCU7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMnMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xufVxuXG4ubWRsLXByb2dyZXNzID4gLnByb2dyZXNzYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1haW4tY29sb3I7XG4gIHotaW5kZXg6IDE7XG4gIGxlZnQ6IDA7XG59XG5cbi5tZGwtcHJvZ3Jlc3MgPiAuYnVmZmVyYmFyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcHJvZ3Jlc3Mtc2Vjb25kYXJ5LWNvbG9yLCAkcHJvZ3Jlc3Mtc2Vjb25kYXJ5LWNvbG9yKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcm9ncmVzcy1tYWluLWNvbG9yLCAkcHJvZ3Jlc3MtbWFpbi1jb2xvcik7XG4gIHotaW5kZXg6IDA7XG4gIGxlZnQ6IDA7XG59XG5cbi5tZGwtcHJvZ3Jlc3MgPiAuYXV4YmFyIHtcbiAgcmlnaHQ6IDA7XG59XG5cbi8vIFdlYmtpdCBvbmx5XG5Ac3VwcG9ydHMgKC13ZWJraXQtYXBwZWFyYW5jZTpub25lKSB7XG4gIC5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKSA+IC5hdXhiYXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHByb2dyZXNzLXNlY29uZGFyeS1jb2xvciwgJHByb2dyZXNzLXNlY29uZGFyeS1jb2xvciksXG4gICAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcm9ncmVzcy1tYWluLWNvbG9yLCAkcHJvZ3Jlc3MtbWFpbi1jb2xvcik7XG4gICAgbWFzazogdXJsKCcjeyRwcm9ncmVzcy1pbWFnZS1wYXRofS9idWZmZXIuc3ZnP2VtYmVkJyk7XG4gIH1cbn1cblxuLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkcHJvZ3Jlc3MtZmFsbGJhY2stYnVmZmVyLWNvbG9yLCAkcHJvZ3Jlc3MtZmFsbGJhY2stYnVmZmVyLWNvbG9yKSxcbiAgICBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRwcm9ncmVzcy1tYWluLWNvbG9yLCAkcHJvZ3Jlc3MtbWFpbi1jb2xvcik7XG59XG5cbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJvZ3Jlc3MtbWFpbi1jb2xvcjtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUxO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xufVxuXG4ubWRsLXByb2dyZXNzLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSA+IC5iYXIzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLW1haW4tY29sb3I7XG4gIGFuaW1hdGlvbi1uYW1lOiBpbmRldGVybWluYXRlMjtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbn1cblxuQGtleWZyYW1lcyBpbmRldGVybWluYXRlMSB7XG4gIDAlIHtcbiAgICBsZWZ0OiAwJTtcbiAgICB3aWR0aDogMCU7XG4gIH1cbiAgNTAlIHtcbiAgICBsZWZ0OiAyNSU7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxuICA3NSUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgd2lkdGg6IDAlO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTIge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlO1xuICB9XG4gIDUwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlO1xuICB9XG4gIDc1JSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL21peGluc1wiO1xuXG4vLyBOYXZpZ2F0aW9uIGNsYXNzZXMuIE9ubHkgdXNlZCBoZXJlIGZvciBub3csIGJ1dCB3ZSBtYXkgYXQgc29tZSBwb2ludCBtb3ZlXG4vLyB0aGlzIHRvIGl0cyBvd24gY29tcG9uZW50LlxuLm1kbC1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gIGNvbG9yOiAkbGF5b3V0LXRleHQtY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAkbGF5b3V0LW5hdi1saW5rLWZvbnQtc2l6ZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBNYWluIGxheW91dCBjbGFzcy5cbi5tZGwtbGF5b3V0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLy8gVXRpbGl0eSBjbGFzc2VzIGZvciBzY3JlZW4gc2l6ZXMuXG4ubWRsLWxheW91dC5pcy1zbWFsbC1zY3JlZW4gLm1kbC1sYXlvdXQtLWxhcmdlLXNjcmVlbi1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1kbC1sYXlvdXQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pIC5tZGwtbGF5b3V0LS1zbWFsbC1zY3JlZW4tb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tZGwtbGF5b3V0X19jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cblxuICAvLyBPcHRpb25hbCB1dGlsaXR5IGNsYXNzZXMgZm9yIGZvcm1hdHRpbmcgc3BlY2lhbCBibG9ja3MgaW4gdGhpcyBjb21wb25lbnQuXG4gIC5tZGwtbGF5b3V0X190aXRsZSxcbiAgLm1kbC1sYXlvdXQtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIHR5cG8tdGl0bGUoKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAubWRsLWxheW91dC1zcGFjZXIge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgfVxuXG5cbiAgLy8gRHJhd2VyLlxuICAubWRsLWxheW91dF9fZHJhd2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICB3aWR0aDogJGxheW91dC1kcmF3ZXItd2lkdGg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAaW5jbHVkZSBzaGFkb3ctMmRwKCk7XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRsYXlvdXQtZHJhd2VyLWJvcmRlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkbGF5b3V0LWRyYXdlci1iZy1jb2xvcjtcblxuICAgIC8vIFRyYW5zZm9ybSBvZmZzY3JlZW4uXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0kbGF5b3V0LWRyYXdlci13aWR0aCAtIDEwcHgpO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuXG4gICAgY29sb3I6ICRsYXlvdXQtdGV4dC1jb2xvcjtcblxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICB6LWluZGV4OiA1O1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICYgfiAubWRsLWxheW91dF9fY29udGVudC5tZGwtbGF5b3V0X19jb250ZW50IHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAmID4gLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAgICYgPiAubWRsLWxheW91dC10aXRsZSB7XG4gICAgICBsaW5lLWhlaWdodDogJGxheW91dC1kZXNrdG9wLWhlYWRlci1oZWlnaHQ7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtaW5kZW50O1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgICBsaW5lLWhlaWdodDogJGxheW91dC1tb2JpbGUtaGVhZGVyLWhlaWdodDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICYgLm1kbC1uYXZpZ2F0aW9uIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuXG4gICAgICAmIC5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgcGFkZGluZzogMTZweCAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLWluZGVudDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGNvbG9yOiAkbGF5b3V0LWRyYXdlci1uYXZpZ2F0aW9uLWNvbG9yO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgICAgcGFkZGluZzogMTZweCAkbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1uYXYtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jdXJyZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsYXlvdXQtZHJhd2VyLW5hdmlnYXRpb24tbGluay1hY3RpdmUtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkbGF5b3V0LWRyYXdlci1uYXZpZ2F0aW9uLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQgKyAxcHgpIHtcbiAgICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAmIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgLy8gRHJhd2VyIGJ1dHRvbi5cbiAgLy8gVE9ETyhzZ29tZXMpOiBSZXBsYWNlIHdpdGggYW4gaWNvbiBidXR0b24gd2hlbiB3ZSBoYXZlIHRoYXQgY29tcG9uZW50LlxuICAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAkbGF5b3V0LWRyYXdlci1idXR0b24tZGVza3RvcC1zaXplO1xuICAgIHdpZHRoOiAkbGF5b3V0LWRyYXdlci1idXR0b24tZGVza3RvcC1zaXplO1xuICAgIGJvcmRlcjogMDtcblxuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBsaW5lLWhlaWdodDogJGxheW91dC1kcmF3ZXItYnV0dG9uLWRlc2t0b3Atc2l6ZSArIDI7XG4gICAgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgbWFyZ2luOiAxMHB4IDEycHg7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICRsYXlvdXQtaGVhZGVyLXRleHQtY29sb3I7XG5cbiAgICB6LWluZGV4OiA0O1xuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlciAmIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCArIDFweCkge1xuICAgICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtaW4taGVpZ2h0OiAkbGF5b3V0LWRlc2t0b3AtaGVhZGVyLWhlaWdodDtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG4gICAgei1pbmRleDogMztcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRsYXlvdXQtaGVhZGVyLWJnLWNvbG9yO1xuICAgIGNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbWF4LWhlaWdodCwgYm94LXNoYWRvdztcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICBtaW4taGVpZ2h0OiAkbGF5b3V0LW1vYmlsZS1oZWFkZXItaGVpZ2h0O1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIuaXMtdXBncmFkZWQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pID4gJiB7XG4gICAgICBtYXJnaW4tbGVmdDogJGxheW91dC1kcmF3ZXItd2lkdGg7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gI3skbGF5b3V0LWRyYXdlci13aWR0aH0pO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkICsgMXB4KSB7XG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gJiB7XG4gICAgICAgIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLm1kbC1sYXlvdXQtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLWluZGVudDtcbiAgICAgIHRvcDogKCRsYXlvdXQtZGVza3RvcC1oZWFkZXItaGVpZ2h0IC0gJGxheW91dC1oZWFkZXItaWNvbi1zaXplKSAvIDI7XG4gICAgICBoZWlnaHQ6ICRsYXlvdXQtaGVhZGVyLWljb24tc2l6ZTtcbiAgICAgIHdpZHRoOiAkbGF5b3V0LWhlYWRlci1pY29uLXNpemU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgei1pbmRleDogMztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgICBsZWZ0OiAkbGF5b3V0LWhlYWRlci1tb2JpbGUtaW5kZW50O1xuICAgICAgICB0b3A6ICgkbGF5b3V0LW1vYmlsZS1oZWFkZXItaGVpZ2h0IC0gJGxheW91dC1oZWFkZXItaWNvbi1zaXplKSAvIDI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXQuaGFzLWRyYXdlciAmID4gLm1kbC1sYXlvdXQtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYuaXMtY29tcGFjdCB7XG4gICAgICBtYXgtaGVpZ2h0OiAkbGF5b3V0LWRlc2t0b3AtaGVhZGVyLWhlaWdodDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxheW91dC1zY3JlZW4tc2l6ZS10aHJlc2hvbGQpIHtcbiAgICAgICAgbWF4LWhlaWdodDogJGxheW91dC1tb2JpbGUtaGVhZGVyLWhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWNvbXBhY3QuaGFzLXRhYnMge1xuICAgICAgaGVpZ2h0OiAkbGF5b3V0LWRlc2t0b3AtaGVhZGVyLWhlaWdodCArICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRsYXlvdXQtbW9iaWxlLWhlYWRlci1oZWlnaHQgKyAkbGF5b3V0LXRhYi1iYXItaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLm1kbC1sYXlvdXQtLWZpeGVkLWhlYWRlciA+ICYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci0tdHJhbnNwYXJlbnQubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci0tc2Nyb2xsIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmLmlzLWNhc3Rpbmctc2hhZG93IHtcbiAgICAgICAgQGluY2x1ZGUgc2hhZG93LTJkcCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogJGxheW91dC1oZWFkZXItZGVza3RvcC1yb3ctaGVpZ2h0O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMCAkbGF5b3V0LWhlYWRlci1kZXNrdG9wLWluZGVudCAwICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtYmFzZWxpbmU7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgIGhlaWdodDogJGxheW91dC1oZWFkZXItbW9iaWxlLXJvdy1oZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDAgJGxheW91dC1oZWFkZXItbW9iaWxlLWluZGVudCAwICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1iYXNlbGluZTtcbiAgICAgIH1cblxuICAgICAgJiA+ICoge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci0tc2Nyb2xsICYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgJiAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogJGxheW91dC1oZWFkZXItZGVza3RvcC1yb3ctaGVpZ2h0O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgICAgaGVpZ2h0OiAkbGF5b3V0LWhlYWRlci1tb2JpbGUtcm93LWhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmIC5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogJGxheW91dC1oZWFkZXItdGV4dC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRsYXlvdXQtaGVhZGVyLWRlc2t0b3Atcm93LWhlaWdodDtcbiAgICAgICAgcGFkZGluZzogMCAyNHB4O1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1yb3ctaGVpZ2h0O1xuICAgICAgICAgIHBhZGRpbmc6IDAgJGxheW91dC1oZWFkZXItbW9iaWxlLWluZGVudDtcbiAgICAgICAgfVxuICAgICAgfSAgICB9XG5cbiAgLy8gT2JmdXNjYXRvci5cbiAgLm1kbC1sYXlvdXRfX29iZnVzY2F0b3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgpO1xuXG4gICAgJi5pcy12aXNpYmxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuICB9XG5cblxuICAvLyBDb250ZW50LlxuICAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgLy8gRml4IElFMTAgYnVnLlxuICAgIC1tcy1mbGV4OiAwIDEgYXV0bztcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgei1pbmRleDogMTtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cbiAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gJiB7XG4gICAgICBtYXJnaW4tbGVmdDogJGxheW91dC1kcmF3ZXItd2lkdGg7XG4gICAgfVxuXG4gICAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lci5oYXMtc2Nyb2xsaW5nLWhlYWRlciAmIHtcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAubWRsLWxheW91dF9fY29udGFpbmVyLmhhcy1zY3JvbGxpbmctaGVhZGVyICYge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVGFicy5cbiAgLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgIGhlaWdodDogJGxheW91dC10YWItYmFyLWhlaWdodCAqIDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLVxuICAgICAgICAjeygoJGxheW91dC1oZWFkZXItZGVza3RvcC1iYXNlbGluZSAtICRsYXlvdXQtdGFiLWRlc2t0b3AtcGFkZGluZykgKiAyKX0pO1xuICAgIHBhZGRpbmc6IDAgMCAwXG4gICAgICAgICgkbGF5b3V0LWhlYWRlci1kZXNrdG9wLWJhc2VsaW5lIC0gJGxheW91dC10YWItZGVza3RvcC1wYWRkaW5nKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsYXlvdXQtaGVhZGVyLWJnLWNvbG9yO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBzY3JvbGw7XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC1cbiAgICAgICAgICAjeygkbGF5b3V0LWhlYWRlci1tb2JpbGUtYmFzZWxpbmUgLSAkbGF5b3V0LXRhYi1tb2JpbGUtcGFkZGluZyl9KTtcbiAgICAgIHBhZGRpbmc6IDAgMCAwXG4gICAgICAgICAgKCRsYXlvdXQtaGVhZGVyLW1vYmlsZS1iYXNlbGluZSAtICRsYXlvdXQtdGFiLW1vYmlsZS1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dC0tZml4ZWQtdGFicyAmIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLm1kbC1sYXlvdXRfX3RhYi1iYXItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAkbGF5b3V0LXRhYi1iYXItaGVpZ2h0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgei1pbmRleDogMjtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5tZGwtbGF5b3V0X19jb250YWluZXIgPiAmIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6ICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG4gICAgd2lkdGg6ICRsYXlvdXQtaGVhZGVyLWRlc2t0b3AtYmFzZWxpbmUgLSAkbGF5b3V0LXRhYi1kZXNrdG9wLXBhZGRpbmc7XG4gICAgei1pbmRleDogNDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1oZWFkZXItYmctY29sb3I7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsYXlvdXQtc2NyZWVuLXNpemUtdGhyZXNob2xkKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgd2lkdGg6ICRsYXlvdXQtaGVhZGVyLW1vYmlsZS1iYXNlbGluZSAtICRsYXlvdXQtdGFiLW1vYmlsZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICBsaW5lLWhlaWdodDogJGxheW91dC10YWItYmFyLWhlaWdodDtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGxheW91dC1oZWFkZXItdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbiB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5tZGwtbGF5b3V0X190YWItYmFyLXJpZ2h0LWJ1dHRvbiB7XG4gICAgcmlnaHQ6IDA7XG4gIH1cblxuICAubWRsLWxheW91dF9fdGFiIHtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDAgJGxheW91dC10YWItZGVza3RvcC1wYWRkaW5nIDAgJGxheW91dC10YWItZGVza3RvcC1wYWRkaW5nO1xuXG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBoZWlnaHQ6ICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsYXlvdXQtdGFiLWJhci1oZWlnaHQ7XG5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6ICRsYXlvdXQtdGFiLWZvbnQtc2l6ZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgY29sb3I6ICRsYXlvdXQtaGVhZGVyLXRhYi10ZXh0LWNvbG9yO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbGF5b3V0LXNjcmVlbi1zaXplLXRocmVzaG9sZCkge1xuICAgICAgcGFkZGluZzogMCAkbGF5b3V0LXRhYi1tb2JpbGUtcGFkZGluZyAwICRsYXlvdXQtdGFiLW1vYmlsZS1wYWRkaW5nO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzICYge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkICYuaXMtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbGF5b3V0LWhlYWRlci10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkICYuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgICBoZWlnaHQ6ICRsYXlvdXQtdGFiLWhpZ2hsaWdodC10aGlja25lc3M7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYmFja2dyb3VuZDogJGxheW91dC1oZWFkZXItdGFiLWhpZ2hsaWdodDtcbiAgICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC40LCAxKSAwLjAxcyBhbHRlcm5hdGUgZm9yd2FyZHM7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAxLCAxKTtcbiAgICB9XG5cbiAgICAmIC5tZGwtbGF5b3V0X190YWItcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmIC5tZGwtcmlwcGxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxheW91dC1oZWFkZXItdGV4dC1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWRsLWxheW91dF9fdGFiLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAmLmlzLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1yYWRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBmb250LXNpemU6ICRyYWRpby1sYWJlbC1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkcmFkaW8tbGFiZWwtaGVpZ2h0O1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuICAmLmlzLXVwZ3JhZGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRyYWRpby1idXR0b24tc2l6ZSArICRyYWRpby1wYWRkaW5nO1xuICB9XG59XG5cbi5tZGwtcmFkaW9fX2J1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAkcmFkaW8tbGFiZWwtaGVpZ2h0O1xuXG4gIC5tZGwtcmFkaW8uaXMtdXBncmFkZWQgJiB7XG4gICAgLy8gSGlkZSBpbnB1dCBlbGVtZW50LCB3aGlsZSBzdGlsbCBtYWtpbmcgaXQgcmVzcG9uZCB0byBmb2N1cy5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4ubWRsLXJhZGlvX19vdXRlci1jaXJjbGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHJhZGlvLXRvcC1vZmZzZXQ7XG4gIGxlZnQ6IDA7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkcmFkaW8tYnV0dG9uLXNpemU7XG4gIGhlaWdodDogJHJhZGlvLWJ1dHRvbi1zaXplO1xuICBtYXJnaW46IDA7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIGJvcmRlcjogMnB4IHNvbGlkICRyYWRpby1vZmYtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICB6LWluZGV4OiAyO1xuXG4gIC5tZGwtcmFkaW8uaXMtY2hlY2tlZCAmIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkcmFkaW8tY29sb3I7XG4gIH1cblxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkICYge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRyYWRpby1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1kbC1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW46IDA7XG4gIHRvcDogJHJhZGlvLXRvcC1vZmZzZXQgKyAkcmFkaW8taW5uZXItbWFyZ2luO1xuICBsZWZ0OiAkcmFkaW8taW5uZXItbWFyZ2luO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkcmFkaW8tYnV0dG9uLXNpemUgLSAoJHJhZGlvLWlubmVyLW1hcmdpbiAqIDIpO1xuICBoZWlnaHQ6ICRyYWRpby1idXR0b24tc2l6ZSAtICgkcmFkaW8taW5uZXItbWFyZ2luICogMik7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KDAuMjhzKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2Zvcm06IHNjYWxlM2QoMCwgMCwgMCk7XG5cbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAkcmFkaW8tY29sb3I7XG5cbiAgLm1kbC1yYWRpby5pcy1jaGVja2VkICYge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJHJhZGlvLWRpc2FibGVkLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxuXG4gIC5tZGwtcmFkaW8uaXMtZm9jdXNlZCAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG59XG5cbi5tZGwtcmFkaW9fX2xhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgJiB7XG4gICAgY29sb3I6ICRyYWRpby1kaXNhYmxlZC1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtKCgkcmFkaW8tcmlwcGxlLXNpemUgLSAkcmFkaW8tbGFiZWwtaGVpZ2h0KSAvIDIpO1xuICBsZWZ0OiAtKCgkcmFkaW8tcmlwcGxlLXNpemUgLSAkcmFkaW8tYnV0dG9uLXNpemUpIC8gMik7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6ICRyYWRpby1yaXBwbGUtc2l6ZTtcbiAgaGVpZ2h0OiAkcmFkaW8tcmlwcGxlLXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG5cbiAgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogJHJhZGlvLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAmIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cblxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkICYgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi8vIFNvbWUgQ1NTIG1hZ2ljIHRvIHRhcmdldCBvbmx5IElFLlxuXzotbXMtaW5wdXQtcGxhY2Vob2xkZXIsIDpyb290IC5tZGwtc2xpZGVyLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQge1xuICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgLy8gVGhlIHRodW1iIGNhbid0IG92ZXJmbG93IHRoZSB0cmFjayBvciB0aGUgcmVzdCBvZiB0aGUgY29udHJvbCBpbiBJRSwgc28gd2VcbiAgLy8gbmVlZCB0byBtYWtlIGl0IHRhbGwgZW5vdWdoIHRvIGNvbnRhaW4gdGhlIGxhcmdlc3QgdmVyc2lvbiBvZiB0aGUgdGh1bWIuXG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyBTbGlkZXIgY29tcG9uZW50IChzdHlsZWQgaW5wdXRbdHlwZT1yYW5nZV0pLlxuLm1kbC1zbGlkZXIge1xuICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gIG1hcmdpbjogMCAyMHB4O1xuXG4gICYuaXMtdXBncmFkZWQge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAkcmFuZ2UtY29sb3I7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICAvLyBEaXNhYmxlIGRlZmF1bHQgZm9jdXMgb24gRmlyZWZveC5cbiAgICAmOjotbW96LWZvY3VzLW91dGVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICB9XG5cbiAgICAvLyBEaXNhYmxlIHRvb2x0aXAgb24gSUUuXG4gICAgJjo6LW1zLXRvb2x0aXAge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRyYWNrcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgJjo6LW1zLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAvLyBNYXJnaW4gb24gLW1zLXRyYWNrIGRvZXNuJ3Qgd29yayByaWdodCwgc28gd2UgdXNlIGdyYWRpZW50cyBvbiB0aGVcbiAgICAgIC8vIGZpbGxzLlxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICB0cmFuc3BhcmVudCAxNnB4LFxuICAgICAgJHJhbmdlLWNvbG9yIDE2cHgsXG4gICAgICAkcmFuZ2UtY29sb3IgMCk7XG4gICAgfVxuXG4gICAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIC8vIE1hcmdpbiBvbiAtbXMtdHJhY2sgZG9lc24ndCB3b3JrIHJpZ2h0LCBzbyB3ZSB1c2UgZ3JhZGllbnRzIG9uIHRoZVxuICAgICAgLy8gZmlsbHMuXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCxcbiAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgdHJhbnNwYXJlbnQgMTZweCxcbiAgICAgICRyYW5nZS1iZy1jb2xvciAxNnB4LFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDApO1xuICAgIH1cblxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVGh1bWJzICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdCxcbiAgICAgIGJvcmRlciAwLjE4cyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQsXG4gICAgICBib3gtc2hhZG93IDAuMThzICRhbmltYXRpb24tY3VydmUtZGVmYXVsdCxcbiAgICAgIGJhY2tncm91bmQgMC4yOHMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0O1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIC8vIC1tb3otcmFuZ2UtdGh1bWIgZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCB0cmFuc2l0aW9ucy5cbiAgICB9XG5cbiAgICAmOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCAkcmFuZ2UtZmFkZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCAkcmFuZ2UtZmFkZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICB9XG5cbiAgICAmOjotbXMtdGh1bWIge1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMzc1KTtcbiAgICAgIC8vIC1tcy10aHVtYiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHRyYW5zaXRpb25zLCBidXQgbGVhdmluZyB0aGlzIGhlcmVcbiAgICAgIC8vIGluIGNhc2Ugc3VwcG9ydCBldmVyIGdldHMgYWRkZWQuXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0LFxuICAgICAgYmFja2dyb3VuZCAwLjI4cyAkYW5pbWF0aW9uLWN1cnZlLWRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjpmb2N1czpub3QoOmFjdGl2ZSk6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGNsb3Nlc3Qtc2lkZSxcbiAgICAgICRyYW5nZS1jb2xvciAwJSxcbiAgICAgICRyYW5nZS1jb2xvciAzNy41JSxcbiAgICAgICRyYW5nZS1mYWRlZC1jb2xvciAzNy41JSxcbiAgICAgICRyYW5nZS1mYWRlZC1jb2xvciAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgJjphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcmFuZ2UtY29sb3I7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7XG4gICAgfVxuXG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAwLXZhbHVlICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRyYW5nZS1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRyYW5nZS1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlICtcbiAgICAgICAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpmb2N1czpub3QoOmFjdGl2ZSk6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggJHJhbmdlLWJnLWZvY3VzLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWZvY3VzLWNvbG9yO1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4ICRyYW5nZS1iZy1mb2N1cy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1iZy1mb2N1cy1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS42cHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZSArXG4gICAgICAgIC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA5cHg7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMS41cHggc29saWQgJHJhbmdlLWJnLWNvbG9yO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsXG4gICAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAgIHRyYW5zcGFyZW50IDY2LjY3JSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciA2Ni42NyUsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMTAwJSk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsXG4gICAgICAkcmFuZ2UtYmctZm9jdXMtY29sb3IgMCUsXG4gICAgICAkcmFuZ2UtYmctZm9jdXMtY29sb3IgMjUlLFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDI1JSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciAzNy41JSxcbiAgICAgICRyYW5nZS1iZy1mb2N1cy1jb2xvciAzNy41JSxcbiAgICAgICRyYW5nZS1iZy1mb2N1cy1jb2xvciAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU2MjUpO1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsXG4gICAgICB0cmFuc3BhcmVudCAwJSxcbiAgICAgIHRyYW5zcGFyZW50IDc3Ljc4JSxcbiAgICAgICRyYW5nZS1iZy1jb2xvciA3Ny43OCUsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMTAwJSk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIH1cblxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDlweDtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBEaXNhYmxlZCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgJjpkaXNhYmxlZDpmb2N1czo6LXdlYmtpdC1zbGlkZXItdGh1bWIsXG4gICAgJjpkaXNhYmxlZDphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1iLFxuICAgICY6ZGlzYWJsZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWNvbG9yO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQ6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIsXG4gICAgJjpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsXG4gICAgJjpkaXNhYmxlZDo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkICtcbiAgICAgICAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyYW5nZS1iZy1jb2xvcjtcbiAgICAgIGxlZnQ6IC02cHg7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCArXG4gICAgICAgIC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA2cHg7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iLFxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRyYW5nZS1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIsXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iLFxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRyYW5nZS1iZy1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7XG4gICAgfVxuXG4gICAgJi5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlICtcbiAgICAgICAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgICAgIGxlZnQ6IDZweDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkOmZvY3VzOjotbXMtdGh1bWIsXG4gICAgJjpkaXNhYmxlZDphY3RpdmU6Oi1tcy10aHVtYixcbiAgICAmOmRpc2FibGVkOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcbiAgICAgIGJhY2tncm91bmQ6ICRyYW5nZS1iZy1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDpmb2N1czo6LW1zLXRodW1iLFxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1zLXRodW1iLFxuICAgICYuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLFxuICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICB0cmFuc3BhcmVudCA1MCUsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgNTAlLFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDEwMCUpO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQ6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LFxuICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICB0cmFuc3BhcmVudCAyNXB4LFxuICAgICAgJHJhbmdlLWJnLWNvbG9yIDI1cHgsXG4gICAgICAkcmFuZ2UtYmctY29sb3IgMCk7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZDo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB9XG5cbiAgICAmLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgfVxuICB9XG59XG5cbiAgLy8gU2luY2Ugd2UgbmVlZCB0byBzcGVjaWZ5IGEgaGVpZ2h0IG9mIDMycHggaW4gSUUsIHdlIGFkZCBhIGNsYXNzIGhlcmUgZm9yIGFcbiAgLy8gY29udGFpbmVyIHRoYXQgYnJpbmdzIGl0IGJhY2sgdG8gYSByZWFzb25hYmxlIGhlaWdodC5cbiAgLm1kbC1zbGlkZXJfX2llLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IG5vbmU7XG4gICAgcGFkZGluZzogbm9uZTtcbiAgfVxuXG4gIC8vIFdlIHVzZSBhIHNldCBvZiBkaXZzIGJlaGluZCB0aGUgdHJhY2sgdG8gc3R5bGUgaXQgaW4gYWxsIG5vbi1JRSBicm93c2Vycy5cbiAgLy8gVGhpcyBvbmUgY29udGFpbnMgYm90aCB0aGUgYmFja2dyb3VuZCBhbmQgdGhlIHNsaWRlci5cbiAgLm1kbC1zbGlkZXJfX2NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgfVxuXG4gIC8vIFRoaXMgb25lIHNldHMgdXAgYSBmbGV4IGJveCBmb3IgdGhlIHN0eWxlZCB1cHBlciBhbmQgbG93ZXIgcG9ydGlvbnMgb2YgdGhlXG4gIC8vIHRoZSBzbGlkZXIgdHJhY2suXG4gIC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXgge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNTJweCk7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgMjZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTFweCk7XG4gIH1cblxuICAvLyBUaGlzIG9uZSBzdHlsZXMgdGhlIGxvd2VyIHBhcnQgb2YgdGhlIHNsaWRlciB0cmFjay5cbiAgLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICRyYW5nZS1jb2xvcjtcbiAgICBmbGV4OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFRoaXMgb25lIHN0eWxlcyB0aGUgdXBwZXIgcGFydCBvZiB0aGUgc2xpZGVyIHRyYWNrLlxuICAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgYmFja2dyb3VuZDogJHJhbmdlLWJnLWNvbG9yO1xuICAgIGZsZXg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC4xOHMgJGFuaW1hdGlvbi1jdXJ2ZS1kZWZhdWx0XG4gIH1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuXG4ubWRsLXNwaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6ICRzcGlubmVyLXNpemU7XG4gIGhlaWdodDogJHNwaW5uZXItc2l6ZTtcblxuICAmOm5vdCguaXMtdXBncmFkZWQpLmlzLWFjdGl2ZTphZnRlciB7XG4gICAgY29udGVudDogXCJMb2FkaW5nLi4uXCI7XG4gIH1cblxuICAmLmlzLXVwZ3JhZGVkLmlzLWFjdGl2ZSB7XG4gICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZSAkc3Bpbm5lci1kdXJhdGlvbiBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fY29udGFpbmVyLXJvdGF0ZSB7XG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSB9XG59XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMSB7XG4gIGJvcmRlci1jb2xvcjogJHNwaW5uZXItY29sb3ItMTtcblxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAmIHtcbiAgICBib3JkZXItY29sb3I6ICRzcGlubmVyLXNpbmdsZS1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgJiB7XG4gICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlICg0ICogJHNwaW5uZXItYXJjLXRpbWUpXG4gICAgICAgICAgICAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW4gaW5maW5pdGUgYm90aCxcbiAgICAgICAgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXQgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICB9XG59XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMiB7XG4gIGJvcmRlci1jb2xvcjogJHNwaW5uZXItY29sb3ItMjtcblxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAmIHtcbiAgICBib3JkZXItY29sb3I6ICRzcGlubmVyLXNpbmdsZS1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgJiB7XG4gICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlICg0ICogJHNwaW5uZXItYXJjLXRpbWUpXG4gICAgICAgICAgICAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW4gaW5maW5pdGUgYm90aCxcbiAgICAgICAgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICB9XG59XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMyB7XG4gIGJvcmRlci1jb2xvcjogJHNwaW5uZXItY29sb3ItMztcblxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAmIHtcbiAgICBib3JkZXItY29sb3I6ICRzcGlubmVyLXNpbmdsZS1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgJiB7XG4gICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlICg0ICogJHNwaW5uZXItYXJjLXRpbWUpXG4gICAgICAgICAgICAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW4gaW5maW5pdGUgYm90aCxcbiAgICAgICAgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICB9XG59XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItNCB7XG4gIGJvcmRlci1jb2xvcjogJHNwaW5uZXItY29sb3ItNDtcblxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAmIHtcbiAgICBib3JkZXItY29sb3I6ICRzcGlubmVyLXNpbmdsZS1jb2xvcjtcbiAgfVxuXG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgJiB7XG4gICAgYW5pbWF0aW9uOlxuICAgICAgICBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlICg0ICogJHNwaW5uZXItYXJjLXRpbWUpXG4gICAgICAgICAgICAkYW5pbWF0aW9uLWN1cnZlLWZhc3Qtb3V0LXNsb3ctaW4gaW5maW5pdGUgYm90aCxcbiAgICAgICAgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQgKDQgKiAkc3Bpbm5lci1hcmMtdGltZSlcbiAgICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSB7XG4gIDEyLjUlIHsgdHJhbnNmb3JtOiByb3RhdGUoMC41ICogJHNwaW5uZXItYXJjLXNpemUpOyAgfVxuICAyNSUgICB7IHRyYW5zZm9ybTogcm90YXRlKCRzcGlubmVyLWFyYy1zaXplKTsgIH1cbiAgMzcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgxLjUgKiAkc3Bpbm5lci1hcmMtc2l6ZSk7ICB9XG4gIDUwJSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMiAqICRzcGlubmVyLWFyYy1zaXplKTsgIH1cbiAgNjIuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgyLjUgKiAkc3Bpbm5lci1hcmMtc2l6ZSk7ICB9XG4gIDc1JSAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMyAqICRzcGlubmVyLWFyYy1zaXplKTsgIH1cbiAgODcuNSUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzLjUgKiAkc3Bpbm5lci1hcmMtc2l6ZSk7IH1cbiAgdG8gICAgeyB0cmFuc2Zvcm06IHJvdGF0ZSg0ICogJHNwaW5uZXItYXJjLXNpemUpOyB9XG59XG5cbi8qKlxuKiBIQUNLOiBFdmVuIHRob3VnaCB0aGUgaW50ZW50aW9uIGlzIHRvIGhhdmUgdGhlIGN1cnJlbnQgLm1kbC1zcGlubmVyX19sYXllci1OXG4qIGF0IGBvcGFjaXR5OiAxYCwgd2Ugc2V0IGl0IHRvIGBvcGFjaXR5OiAwLjk5YCBpbnN0ZWFkIHNpbmNlIHRoaXMgZm9yY2VzIENocm9tZVxuKiB0byBkbyBwcm9wZXIgc3VicGl4ZWwgcmVuZGVyaW5nIGZvciB0aGUgZWxlbWVudHMgYmVpbmcgYW5pbWF0ZWQuIFRoaXMgaXNcbiogZXNwZWNpYWxseSB2aXNpYmxlIGluIENocm9tZSAzOSBvbiBVYnVudHUgMTQuMDQuIFNlZTpcbipcbiogLSBodHRwczovL2dpdGh1Yi5jb20vUG9seW1lci9wYXBlci1zcGlubmVyL2lzc3Vlcy85XG4qIC0gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQzNjI1NVxuKi9cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTEtZmFkZS1pbi1vdXQge1xuICBmcm9tIHsgb3BhY2l0eTogMC45OTsgfVxuICAyNSUgeyBvcGFjaXR5OiAwLjk5OyB9XG4gIDI2JSB7IG9wYWNpdHk6IDA7IH1cbiAgODklIHsgb3BhY2l0eTogMDsgfVxuICA5MCUgeyBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUgeyBvcGFjaXR5OiAwLjk5OyB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAxNSUgeyBvcGFjaXR5OiAwOyB9XG4gIDI1JSB7IG9wYWNpdHk6IDAuOTk7IH1cbiAgNTAlIHsgb3BhY2l0eTogMC45OTsgfVxuICA1MSUgeyBvcGFjaXR5OiAwOyB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICA0MCUgeyBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7IG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHsgb3BhY2l0eTogMC45OTsgfVxuICA3NiUgeyBvcGFjaXR5OiAwOyB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICA2NSUgeyBvcGFjaXR5OiAwOyB9XG4gIDc1JSB7IG9wYWNpdHk6IDAuOTk7IH1cbiAgOTAlIHsgb3BhY2l0eTogMC45OTsgfVxuICAxMDAlIHsgb3BhY2l0eTogMDsgfVxufVxuXG4vKipcbiogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnRcbiogZGl2Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUgc3Bpbm5lciBpcyByb3RhdGluZ1xuKiAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4qXG4qIFVwZGF0ZTogdGhlIGdhcCBubyBsb25nZXIgYXBwZWFycyBvbiBDaHJvbWUgd2hlbiAubWRsLXNwaW5uZXJfX2xheWVyLU4nc1xuKiBvcGFjaXR5IGlzIDAuOTksIGJ1dCBzdGlsbCBkb2VzIG9uIFNhZmFyaSBhbmQgSUUuXG4qL1xuLm1kbC1zcGlubmVyX19nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcblxuICAmIC5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgICB3aWR0aDogMTAwMCU7XG4gICAgbGVmdDogLTQ1MCU7XG4gIH1cbn1cblxuLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcblxuICAmIC5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgICB3aWR0aDogMjAwJTtcbiAgfVxufVxuXG4ubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXdpZHRoOiAkc3Bpbm5lci1zdHJva2Utd2lkdGg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IG5vbmU7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG5cbiAgLm1kbC1zcGlubmVyX19sZWZ0ICYge1xuICAgIGJvcmRlci1yaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMjlkZWcpO1xuXG4gICAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAmIHtcbiAgICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2xlZnQtc3BpbiAkc3Bpbm5lci1hcmMtdGltZVxuICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICAgIH1cbiAgfVxuXG4gIC5tZGwtc3Bpbm5lcl9fcmlnaHQgJiB7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEyOWRlZyk7XG5cbiAgICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlICYge1xuICAgICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fcmlnaHQtc3BpbiAkc3Bpbm5lci1hcmMtdGltZVxuICAgICAgICAgICRhbmltYXRpb24tY3VydmUtZmFzdC1vdXQtc2xvdy1pbiBpbmZpbml0ZSBib3RoO1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sZWZ0LXNwaW4ge1xuICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgtNWRlZyk7IH1cbiAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgxMzBkZWcpOyB9XG59XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX3JpZ2h0LXNwaW4ge1xuICBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoLTEzMGRlZyk7IH1cbiAgNTAlIHsgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7IH1cbiAgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zXCI7XG5cbi5tZGwtc3dpdGNoIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIHotaW5kZXg6IDE7XG5cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogJHN3aXRjaC1sYWJlbC1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAmLmlzLXVwZ3JhZGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRzd2l0Y2gtdHJhY2stbGVuZ3RoIC0gOHB4O1xuICB9XG5cbiAgLy8gYXZvaWRzIGJsdWUgYm94IGFyb3VuZCBzd2l0Y2hcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWRsLXN3aXRjaF9faW5wdXQge1xuICBsaW5lLWhlaWdodDogJHN3aXRjaC1sYWJlbC1oZWlnaHQ7XG5cbiAgLm1kbC1zd2l0Y2guaXMtdXBncmFkZWQgJiB7XG4gICAgLy8gSGlkZSBpbnB1dCBlbGVtZW50LCB3aGlsZSBzdGlsbCBtYWtpbmcgaXQgcmVzcG9uZCB0byBmb2N1cy5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgfVxufVxuXG4ubWRsLXN3aXRjaF9fdHJhY2sge1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLW9mZi10cmFjay1jb2xvcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6ICRzd2l0Y2gtdHJhY2stdG9wO1xuICBoZWlnaHQ6ICRzd2l0Y2gtdHJhY2staGVpZ2h0O1xuICB3aWR0aDogJHN3aXRjaC10cmFjay1sZW5ndGg7XG4gIGJvcmRlci1yYWRpdXM6ICRzd2l0Y2gtdHJhY2staGVpZ2h0O1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtdHJhY2stY29sb3I7XG4gIH1cblxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAmIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWRpc2FibGVkLXRyYWNrLWNvbG9yO1xuICAgIGN1cnNvcjogYXV0bztcbiAgfVxufVxuXG4ubWRsLXN3aXRjaF9fdGh1bWIge1xuICBiYWNrZ3JvdW5kOiAkc3dpdGNoLW9mZi10aHVtYi1jb2xvcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6ICRzd2l0Y2gtdGh1bWItdG9wO1xuICBoZWlnaHQ6ICRzd2l0Y2gtdGh1bWItc2l6ZTtcbiAgd2lkdGg6ICRzd2l0Y2gtdGh1bWItc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICBAaW5jbHVkZSBzaGFkb3ctMmRwKCk7XG5cbiAgQGluY2x1ZGUgbWF0ZXJpYWwtYW5pbWF0aW9uLWRlZmF1bHQoMC4yOHMpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0O1xuXG4gIC5tZGwtc3dpdGNoLmlzLWNoZWNrZWQgJiB7XG4gICAgYmFja2dyb3VuZDogJHN3aXRjaC10aHVtYi1jb2xvcjtcbiAgICBsZWZ0OiAkc3dpdGNoLXRyYWNrLWxlbmd0aCAtICRzd2l0Y2gtdGh1bWItc2l6ZTtcblxuICAgIEBpbmNsdWRlIHNoYWRvdy0zZHAoKTtcbiAgfVxuXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkICYge1xuICAgIGJhY2tncm91bmQ6ICRzd2l0Y2gtZGlzYWJsZWQtdGh1bWItY29sb3I7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG59XG5cbi5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG5cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSRzd2l0Y2gtaGVscGVyLXNpemUgLyAyLCAtJHN3aXRjaC1oZWxwZXItc2l6ZSAvIDIpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogJHN3aXRjaC1oZWxwZXItc2l6ZTtcbiAgaGVpZ2h0OiAkc3dpdGNoLWhlbHBlci1zaXplO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZCAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMHB4ICgoJHN3aXRjaC1yaXBwbGUtc2l6ZSAtICRzd2l0Y2gtaGVscGVyLXNpemUpIC8gMilcbiAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxuXG4gIC5tZGwtc3dpdGNoLmlzLWZvY3VzZWQuaXMtY2hlY2tlZCAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMHB4ICgoJHN3aXRjaC1yaXBwbGUtc2l6ZSAtICRzd2l0Y2gtaGVscGVyLXNpemUpIC8gMilcbiAgICAgICAgJHN3aXRjaC1mYWRlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dpdGNoLWZhZGVkLWNvbG9yO1xuICB9XG59XG5cbi5tZGwtc3dpdGNoX19sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6ICRzd2l0Y2gtbGFiZWwtZm9udC1zaXplO1xuICBsaW5lLWhlaWdodDogJHN3aXRjaC1sYWJlbC1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgbGVmdDogMjRweDtcblxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAmIHtcbiAgICBjb2xvcjogJHN3aXRjaC1kaXNhYmxlZC10aHVtYi1jb2xvcjtcbiAgICBjdXJzb3I6IGF1dG87XG4gIH1cbn1cblxuLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLSgkc3dpdGNoLXJpcHBsZS1zaXplIC0gJHN3aXRjaC1sYWJlbC1oZWlnaHQpIC8gMjtcbiAgbGVmdDogJHN3aXRjaC10aHVtYi1zaXplIC8gMiAtICRzd2l0Y2gtcmlwcGxlLXNpemUgLyAyO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkc3dpdGNoLXJpcHBsZS1zaXplO1xuICBoZWlnaHQ6ICRzd2l0Y2gtcmlwcGxlLXNpemU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7XG5cbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40MHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwLWVuZDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDtcblxuICAmIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAkc3dpdGNoLWNvbG9yO1xuICB9XG5cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgJiB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICB9XG5cbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgJiAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkICYge1xuICAgIGN1cnNvcjogYXV0bztcbiAgICBsZWZ0OiAkc3dpdGNoLXRyYWNrLWxlbmd0aCAtICRzd2l0Y2gtcmlwcGxlLXNpemUgLyAyIC1cbiAgICAgICAgJHN3aXRjaC10aHVtYi1zaXplIC8gMjtcbiAgfVxufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG5cbi5tZGwtdGFicyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1kbC10YWJzX190YWItYmFyIHtcbiAgICBkaXNwbGF5ICAgICAgICAgOiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uICA6IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQgOiBjZW50ZXI7IC8vIOKHvlxuICAgIGFsaWduLWNvbnRlbnQgICA6IHNwYWNlLWJldHdlZW47IC8vIHx8XG4gICAgYWxpZ24taXRlbXMgICAgIDogZmxleC1zdGFydDsgLy8g4oaTXG5cbiAgICBoZWlnaHQgICAgICAgICAgOiA0OHB4O1xuICAgIHBhZGRpbmcgICAgICAgICA6IDAgMCAwIDA7XG4gICAgbWFyZ2luICAgICAgICAgIDogMDtcbiAgICBib3JkZXItYm90dG9tICAgOiAxcHggc29saWQgJHRhYi1ib3JkZXItY29sb3I7XG59XG5cbi5tZGwtdGFic19fdGFiIHtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMjRweCAwIDI0cHg7XG5cbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgY29sb3I6IHJlZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAkbGF5b3V0LXRhYi1mb250LXNpemU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgY29sb3I6ICR0YWItdGV4dC1jb2xvcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgJi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiAkdGFiLWFjdGl2ZS10ZXh0LWNvbG9yO1xuICB9XG5cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkICYuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6ICR0YWItaGlnaGxpZ2h0LWNvbG9yO1xuICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC40LCAxKSAwLjAxcyBhbHRlcm5hdGUgZm9yd2FyZHM7XG4gICAgdHJhbnNpdGlvbjogYWxsIDFzIGN1YmljLWJlemllcigwLjQsIDAuMCwgMSwgMSk7XG4gIH1cblxuICAmIC5tZGwtdGFic19fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgdG9wOiAwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJiAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkdGFiLWhpZ2hsaWdodC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLm1kbC10YWJzX19wYW5lbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLm1kbC10YWJzLmlzLXVwZ3JhZGVkICYuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGJvcmRlci1leHBhbmQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB3aWR0aDogMDtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLy8gVGhlIGNvbnRhaW5lciBmb3IgdGhlIHdob2xlIGNvbXBvbmVudC5cbi5tZGwtdGV4dGZpZWxkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LXRleHQtZm9udC1zaXplO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAkaW5wdXQtdGV4dC12ZXJ0aWNhbC1zcGFjaW5nIDA7XG5cbiAgLy8gQWxpZ24gYnV0dG9ucywgaWYgdXNlZC5cbiAgJiAubWRsLWJ1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogJGlucHV0LXRleHQtdmVydGljYWwtc3BhY2luZztcbiAgfVxufVxuXG4vLyBPcHRpb25hbCBjbGFzcyB0byBhbGlnbiByaWdodC5cbi5tZGwtdGV4dGZpZWxkLS1hbGlnbi1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4vLyBPcHRpb25hbCBjbGFzcyB0byBkaXNwbGF5IGF0IGZ1bGwgd2lkdGguXG4ubWRsLXRleHRmaWVsZC0tZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vLyBPcHRpb25hbCBjbGFzcyB0byBtYWtlIHRoZSB0ZXh0IGZpZWxkIGV4cGFuZGFibGUuXG4ubWRsLXRleHRmaWVsZC0tZXhwYW5kYWJsZSB7XG4gIG1pbi13aWR0aDogJGlucHV0LXRleHQtYnV0dG9uLXNpemU7XG4gIHdpZHRoOiBhdXRvO1xuICBtaW4taGVpZ2h0OiAkaW5wdXQtdGV4dC1idXR0b24tc2l6ZTtcbn1cblxuLy8gU3R5bGluZyBmb3IgdGhlIGlucHV0IGVsZW1lbnQuXG4ubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaW5wdXQtdGV4dC1ib3R0b20tYm9yZGVyLWNvbG9yO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAkaW5wdXQtdGV4dC1mb250LXNpemU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogJGlucHV0LXRleHQtcGFkZGluZyAwO1xuICB3aWR0aDogJGlucHV0LXRleHQtd2lkdGg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgJiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgJiB7XG4gICAgYm9yZGVyLWNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQgJiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkaW5wdXQtdGV4dC1kaXNhYmxlZC1jb2xvcjtcbiAgICBjb2xvcjogJGlucHV0LXRleHQtZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgfVxufVxuXG4ubWRsLXRleHRmaWVsZCB0ZXh0YXJlYS5tZGwtdGV4dGZpZWxkX19pbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBTdHlsaW5nIGZvciB0aGUgbGFiZWwgLyBmbG9hdGluZyBsYWJlbC5cbi5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gIGJvdHRvbTogMDtcbiAgY29sb3I6ICRpbnB1dC10ZXh0LWxhYmVsLWNvbG9yO1xuICBmb250LXNpemU6ICRpbnB1dC10ZXh0LWZvbnQtc2l6ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0b3A6ICgkaW5wdXQtdGV4dC1wYWRkaW5nICsgJGlucHV0LXRleHQtdmVydGljYWwtc3BhY2luZyk7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWRpcnR5ICYge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC8vIEZsb2F0aW5nIExhYmVsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbCAmIHtcbiAgICBAaW5jbHVkZSBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgpO1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQuaXMtZGlzYWJsZWQgJiB7XG4gICAgY29sb3I6ICRpbnB1dC10ZXh0LWRpc2FibGVkLXRleHQtY29sb3I7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZm9jdXNlZCAmLFxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtZGlydHkgJiB7XG4gICAgY29sb3I6ICRpbnB1dC10ZXh0LWhpZ2hsaWdodC1jb2xvcjtcbiAgICBmb250LXNpemUgOiAkaW5wdXQtdGV4dC1mbG9hdGluZy1sYWJlbC1mb250c2l6ZTtcbiAgICB0b3A6ICRpbnB1dC10ZXh0LXZlcnRpY2FsLXNwYWNpbmcgLSAoJGlucHV0LXRleHQtZmxvYXRpbmctbGFiZWwtZm9udHNpemUgKyAkaW5wdXQtdGV4dC1wYWRkaW5nKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyICYsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fZXhwYW5kYWJsZS1ob2xkZXIgJntcbiAgICB0b3A6IC0oJGlucHV0LXRleHQtZmxvYXRpbmctbGFiZWwtZm9udHNpemUgKyAkaW5wdXQtdGV4dC1wYWRkaW5nKTtcbiAgfVxuXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1pbnZhbGlkICYge1xuICAgIGNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1jb2xvcjtcbiAgICBmb250LXNpemU6ICRpbnB1dC10ZXh0LWZsb2F0aW5nLWxhYmVsLWZvbnRzaXplO1xuICB9XG5cbiAgLy8gVGhlIGFmdGVyIGxhYmVsIGlzIHRoZSBjb2xvcmVkIHVuZGVybGluZSBmb3IgdGhlIFRleHRGaWVsZC5cbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LXRleHQtaGlnaGxpZ2h0LWNvbG9yO1xuICAgIGJvdHRvbTogJGlucHV0LXRleHQtdmVydGljYWwtc3BhY2luZztcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBsZWZ0OiA0NSU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIEBpbmNsdWRlIG1hdGVyaWFsLWFuaW1hdGlvbi1kZWZhdWx0KCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMHB4O1xuICB9XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAmOmFmdGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubWRsLXRleHRmaWVsZC5pcy1pbnZhbGlkICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC10ZXh0LWVycm9yLWNvbG9yO1xuICB9XG59XG5cbi8vIFRleHRGaWVsZCBFcnJvci5cbi5tZGwtdGV4dGZpZWxkX19lcnJvciB7XG4gIGNvbG9yOiAkaW5wdXQtdGV4dC1lcnJvci1jb2xvcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6ICRpbnB1dC10ZXh0LWZsb2F0aW5nLWxhYmVsLWZvbnRzaXplO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAmIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5cbi8vIEV4cGFuZGFibGUgSG9sZGVyLlxuLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAkaW5wdXQtdGV4dC1idXR0b24tc2l6ZTtcblxuICBAaW5jbHVkZSBtYXRlcmlhbC1hbmltYXRpb24tZGVmYXVsdCgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgLy8gU2FmYXJpIChwb3NzaWJseSBvdGhlcnMpIG5lZWQgdG8gYmUgY29udmluY2VkIHRoYXQgdGhpcyBmaWVsZCBpcyBhY3R1YWxseVxuICAvLyB2aXNpYmxlLCBvdGhlcndpc2UgaXQgY2Fubm90IGJlIHRhYmJlZCB0byBub3IgZm9jdXNlZCB2aWEgYSA8bGFiZWw+LlxuICAvLyBUT0RPOiBJbiBzb21lIGNhc2VzIChSZXRpbmEgZGlzcGxheXMpLCB0aGlzIGlzIGJpZyBlbm91Z2ggdG8gcmVuZGVyIHRoZVxuICAvLyBpbm5lciBlbGVtZW50IDooXG4gIG1heC13aWR0aDogMC4xcHg7XG5cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAmLCAubWRsLXRleHRmaWVsZC5pcy1kaXJ0eSAmIHtcbiAgICAvLyBUaGlzIGlzIGFuIHVuZm9ydHVuYXRlIGhhY2suIEFuaW1hdGluZyBiZXR3ZWVuIHdpZHRocyBpbiBwZXJjZW50ICglKVxuICAgIC8vIGluIG1hbnkgYnJvd3NlcnMgKENocm9tZSwgRmlyZWZveCkgb25seSBhbmltYXRlcyB0aGUgaW5uZXIgdmlzdWFsIHN0eWxlXG4gICAgLy8gb2YgdGhlIGlucHV0IC0gdGhlIG91dGVyIGJvdW5kaW5nIGJveCBzdGlsbCAnanVtcHMnLlxuICAgIC8vIFRodXMgYXNzdW1lIGEgc2Vuc2libGUgbWF4aW11bSwgYW5kIGFuaW1hdGUgdG8vZnJvbSB0aGF0IHZhbHVlLlxuICAgIG1heC13aWR0aDogNjAwcHg7XG4gIH1cbiAgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLm1kbC10b29sdGlwIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiAkdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiAkdG9vbHRpcC10ZXh0LWNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgbWF4LXdpZHRoOiAxNzBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IC01MDBweDtcbiAgbGVmdDogLTUwMHB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5tZGwtdG9vbHRpcC5pcy1hY3RpdmUge1xuICBhbmltYXRpb246IHB1bHNlIDIwMG1zICRhbmltYXRpb24tY3VydmUtbGluZWFyLW91dC1zbG93LWluIGZvcndhcmRzO1xufVxuXG4ubWRsLXRvb2x0aXAtLWxhcmdlIHtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGZvbnQtc2l6ZTogJHRvb2x0aXAtZm9udC1zaXplLWxhcmdlO1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICA1MCUge1xuICAgIC8vIEZpeGVzIGEgd2VpcmQgYnVnIHdpdGggdGhlIGludGVyYWN0aW9uIGJldHdlZW4gU2FmYXJpIGFuZCB0aGUgcmVzdWx0IG9mXG4gICAgLy8gdGhlIFNBU1MgY29tcGlsYXRpb24gZm9yIHRoZSBhbmltYXRpb24uXG4gICAgLy8gRXNzZW50aWFsbHksIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgXCI1MCVcIiBhbmQgXCIxMDAlXCIgZG9uJ3QgZ2V0IG1lcmdlZFxuICAgIC8vIGludG8gYSBzaW5nbGUgXCI1MCUsIDEwMCVcIiBlbnRyeSwgc28gd2UgbmVlZCB0byBhdm9pZCB0aGVtIGhhdmluZyBhbnlcbiAgICAvLyBtYXRjaGluZyBwcm9wZXJ0aWVzLlxuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnNcIjtcblxuLm1kbC1zaGFkb3ctLTJkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0yZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTNkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy0zZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTRkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy00ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTZkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy02ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLThkcCB7XG4gIEBpbmNsdWRlIHNoYWRvdy04ZHAoKTtcbn1cblxuLm1kbC1zaGFkb3ctLTE2ZHAge1xuICBAaW5jbHVkZSBzaGFkb3ctMTZkcCgpO1xufVxuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiogTk9URTogU29tZSBydWxlcyBoZXJlIGFyZSBhcHBsaWVkIHVzaW5nIGR1cGxpY2F0ZSBzZWxlY3RvcnMuXG4qIFRoaXMgaXMgb24gcHVycG9zZSB0byBpbmNyZWFzZSB0aGVpciBzcGVjaWZpY2l0eSB3aGVuIGFwcGxpZWQuXG4qIEZvciBleGFtcGxlOiBgLm1kbC1jZWxsLS0xLWNvbC1waG9uZS5tZGwtY2VsbC0tMS1jb2wtcGhvbmVgXG4qL1xuXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5tZGwtZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIG1hcmdpbjogMCBhdXRvIDAgYXV0bztcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgJi5tZGwtZ3JpZC0tbm8tc3BhY2luZyB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4ubWRsLWNlbGwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5cbi5tZGwtY2VsbC0tdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLm1kbC1jZWxsLS1taWRkbGUge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5tZGwtY2VsbC0tYm90dG9tIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG5cbi5tZGwtY2VsbC0tc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG59XG5cbi5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gIG1hcmdpbjogMDtcbn1cblxuXG4vLyBNaXhpbnMgZm9yIHdpZHRoIGNhbGN1bGF0aW9uLlxuQG1peGluIHBhcnRpYWwtc2l6ZSgkc2l6ZSwgJGNvbHVtbnMsICRndXR0ZXIpIHtcbiAgd2lkdGg6IGNhbGMoI3soKCRzaXplIC8gJGNvbHVtbnMpICogMTAwKStcIiVcIn0gLSAjeyRndXR0ZXJ9KTtcblxuICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAmIHtcbiAgICB3aWR0aDogI3soKCRzaXplIC8gJGNvbHVtbnMpICogMTAwKStcIiVcIn07XG4gIH1cbn1cblxuQG1peGluIGZ1bGwtc2l6ZSgkZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIHBhcnRpYWwtc2l6ZSgxLCAxLCAkZ3V0dGVyKTtcbn1cblxuXG5cbi8vLy8vLy8vLy8gUGhvbmUgLy8vLy8vLy8vL1xuXG5AbWVkaWEgKG1heC13aWR0aDogJGdyaWQtdGFibGV0LWJyZWFrcG9pbnQgLSAxKSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogJGdyaWQtcGhvbmUtbWFyZ2luIC0gKCRncmlkLXBob25lLWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46ICRncmlkLXBob25lLWd1dHRlciAvIDI7XG4gICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRncmlkLWNlbGwtZGVmYXVsdC1jb2x1bW5zLCAkZ3JpZC1waG9uZS1jb2x1bW5zLFxuICAgICAgICAkZ3JpZC1waG9uZS1ndXR0ZXIpO1xuICB9XG5cbiAgLm1kbC1jZWxsLS1oaWRlLXBob25lIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBEZWZpbmUgcGFydGlhbCBzaXplcyBmb3IgY29sdW1uTnVtYmVyIDwgdG90YWxDb2x1bW5zLlxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkZ3JpZC1waG9uZS1jb2x1bW5zIC0gMSkge1xuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLFxuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLXBob25lLm1kbC1jZWxsLS0jeyRpfS1jb2wtcGhvbmUge1xuICAgICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRpLCAkZ3JpZC1waG9uZS1jb2x1bW5zLCAkZ3JpZC1waG9uZS1ndXR0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluZSAxMDAlIGZvciBldmVyeXRoaW5nIGVsc2UuXG4gIEBmb3IgJGkgZnJvbSAkZ3JpZC1waG9uZS1jb2x1bW5zIHRocm91Z2ggJGdyaWQtZGVza3RvcC1jb2x1bW5zIHtcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbCxcbiAgICAubWRsLWNlbGwtLSN7JGl9LWNvbC1waG9uZS5tZGwtY2VsbC0tI3skaX0tY29sLXBob25lIHtcbiAgICAgIEBpbmNsdWRlIGZ1bGwtc2l6ZSgkZ3JpZC1waG9uZS1ndXR0ZXIpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8gVGFibGV0IC8vLy8vLy8vLy9cblxuQG1lZGlhIChtaW4td2lkdGg6ICRncmlkLXRhYmxldC1icmVha3BvaW50KSBhbmQgKG1heC13aWR0aDogJGdyaWQtZGVza3RvcC1icmVha3BvaW50IC0gMSkge1xuICAubWRsLWdyaWQge1xuICAgIHBhZGRpbmc6ICRncmlkLXRhYmxldC1tYXJnaW4gLSAoJGdyaWQtdGFibGV0LWd1dHRlciAvIDIpO1xuICB9XG5cbiAgLm1kbC1jZWxsIHtcbiAgICBtYXJnaW46ICRncmlkLXRhYmxldC1ndXR0ZXIgLyAyO1xuICAgIEBpbmNsdWRlIHBhcnRpYWwtc2l6ZSgkZ3JpZC1jZWxsLWRlZmF1bHQtY29sdW1ucywgJGdyaWQtdGFibGV0LWNvbHVtbnMsXG4gICAgICAgICRncmlkLXRhYmxldC1ndXR0ZXIpO1xuICB9XG5cbiAgLm1kbC1jZWxsLS1oaWRlLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gRGVmaW5lIHBhcnRpYWwgc2l6ZXMgZm9yIGNvbHVtbk51bWJlciA8IHRvdGFsQ29sdW1ucy5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJGdyaWQtdGFibGV0LWNvbHVtbnMgLSAxKSB7XG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wsXG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0jeyRpfS1jb2wtdGFibGV0IHtcbiAgICAgIEBpbmNsdWRlIHBhcnRpYWwtc2l6ZSgkaSwgJGdyaWQtdGFibGV0LWNvbHVtbnMsICRncmlkLXRhYmxldC1ndXR0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlZmluZSAxMDAlIGZvciBldmVyeXRoaW5nIGVsc2UuXG4gIEBmb3IgJGkgZnJvbSAkZ3JpZC10YWJsZXQtY29sdW1ucyB0aHJvdWdoICRncmlkLWRlc2t0b3AtY29sdW1ucyB7XG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wsXG4gICAgLm1kbC1jZWxsLS0jeyRpfS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0jeyRpfS1jb2wtdGFibGV0IHtcbiAgICAgIEBpbmNsdWRlIGZ1bGwtc2l6ZSgkZ3JpZC10YWJsZXQtZ3V0dGVyKTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vIERlc2t0b3AgLy8vLy8vLy8vL1xuXG5AbWVkaWEgKG1pbi13aWR0aDogJGdyaWQtZGVza3RvcC1icmVha3BvaW50KSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogJGdyaWQtZGVza3RvcC1tYXJnaW4gLSAoJGdyaWQtZGVza3RvcC1ndXR0ZXIgLyAyKTtcbiAgfVxuXG4gIC5tZGwtY2VsbCB7XG4gICAgbWFyZ2luOiAkZ3JpZC1kZXNrdG9wLWd1dHRlciAvIDI7XG4gICAgQGluY2x1ZGUgcGFydGlhbC1zaXplKCRncmlkLWNlbGwtZGVmYXVsdC1jb2x1bW5zLCAkZ3JpZC1kZXNrdG9wLWNvbHVtbnMsXG4gICAgICAgICRncmlkLWRlc2t0b3AtZ3V0dGVyKTtcbiAgfVxuXG4gIC5tZGwtY2VsbC0taGlkZS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAvLyBEZWZpbmUgcGFydGlhbCBzaXplcyBmb3IgYWxsIG51bWJlcnMgb2YgY29sdW1ucy5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1kZXNrdG9wLWNvbHVtbnMge1xuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLFxuICAgIC5tZGwtY2VsbC0tI3skaX0tY29sLWRlc2t0b3AubWRsLWNlbGwtLSN7JGl9LWNvbC1kZXNrdG9wIHtcbiAgICAgIEBpbmNsdWRlIHBhcnRpYWwtc2l6ZSgkaSwgJGdyaWQtZGVza3RvcC1jb2x1bW5zLCAkZ3JpZC1kZXNrdG9wLWd1dHRlcik7XG4gICAgfVxuICB9XG59XG4iLCIubWQtZmFiLWJvdHRvbS1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAyMHB4O1xuICByaWdodDogMjBweDtcbiAgei1pbmRleDogNDk7XG5cbiAgLy8gLm1kLWZhYiB7XG4gIC8vICAgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci10eC1hY3RpdmUgIWltcG9ydGFudDtcbiAgLy8gfVxufVxuIiwibWQtY2FyZCB7XG4gIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeyBAaW5jbHVkZSBtYXJnaW4oMCBudWxsKTsgfVxuXG4gIG1kLXRvb2xiYXIge1xuICAgIG1pbi1oZWlnaHQ6ICRjYXJkLXRvb2xiYXItaGVpZ2h0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLXRvb2xiYXItY29sb3ItYmcgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAwO1xuXG4gICAgLm1kLXRvb2xiYXItdG9vbHMge1xuICAgICAgaGVpZ2h0OiAkY2FyZC10b29sYmFyLWhlaWdodDtcbiAgICAgIG1heC1oZWlnaHQ6ICRjYXJkLXRvb2xiYXItaGVpZ2h0O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgICBmb250LXdlaWdodDogJG1lZGl1bTtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB9XG5cbiAgICAubWQtdG9vbGJhci10b29scywgbWQtaWNvbiB7XG4gICAgICBjb2xvcjogJGNhcmQtY29sb3ItdHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1jb2xvci1iZyAhaW1wb3J0YW50O1xuXG4gICYtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiA5NnB4O1xuXG4gICAgbWQtaWNvbiB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBAaW5jbHVkZSBzaXplKDM2cHgpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygxMnB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJkLWNvbG9yLWljO1xuICAgICAgY29sb3I6ICRjYXJkLWNvbG9yLWJnO1xuICAgICAgYm9yZGVyOiA4cHggZG91YmxlO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxuXG4gICYtaW5mbyB7XG4gICAgJl9fdmFsdWUge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWRhcmsgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1yZWd1bGFyICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW07XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1OTlweCkge1xuICAuY2FyZCB7XG4gICAgJi1pbmZvIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gRm9udCB3ZWlnaHRzXG4kdGhpbiAgICAgOiAxMDA7XG4kbGlnaHQgICAgOiAzMDA7XG4kcmVndWxhciAgOiA0MDA7XG4kbWVkaXVtICAgOiA1MDA7XG4kYm9sZCAgICAgOiA3MDA7XG4kYmxhY2sgICAgOiA5MDA7XG5cbi8vIEJhc2UgRm9udFxuJGJhc2UtZm9udC1mYW1pbHkgICA6ICAnUm9ib3RvJywgJ0hlbHZldGljYScsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LXdlaWdodCAgIDogICRyZWd1bGFyO1xuJGJhc2UtZm9udC1zaXplICAgICA6ICAxNnB4O1xuXG4vLyBGaXhlZCBGb250XG4kZml4ZWQtZm9udC1mYW1pbHkgIDogbW9ub3NwYWNlO1xuJGZpeGVkLWZvbnQtc2l6ZSAgICA6IDg1JTtcblxuLy8gQ29sb3JzXG4kcHJpbWFyeS1kYXJrICAgICAgIDogIzI3MzE0MDtcbiRwcmltYXJ5LXJlZ3VsYXIgICAgOiB0aW50KCMyNzMxNDAsIDEwJSk7XG4kcHJpbWFyeS1saWdodCAgICAgIDogdGludCgjMjczMTQwLCA1MCUpO1xuJGFjY2VudC1yZWd1bGFyICAgICA6ICMxMDgwZjI7XG4kc2Vjb25kYXJ5LWRhcmsgICAgIDogJG1kLWdyZXktNzAwO1xuJHNlY29uZGFyeS1yZWd1bGFyICA6ICRtZC1ncmV5LTQwMDtcbiRzZWNvbmRhcnktbGlnaHQgICAgOiAkbWQtZ3JleS0xMDA7XG5cbi8vIE1haW5cbiRib2R5LWNvbG9yLWJnICAgICAgOiB0aW50KCRwcmltYXJ5LXJlZ3VsYXIsIDkwJSk7XG5cbi8vIFJpYmJvblxuJHJpYmJvbi1zaXplLWhlaWdodCA6IDUwdmg7XG4kcmliYm9uLWNvbG9yLWJnICAgIDogJG1kLWJsdWUtZ3JleS0xMDA7XG5cbi8vIEhlYWRlclxuJGhlYWRlci1jb2xvci10eCAgICA6ICRtZC13aGl0ZTtcbiRoZWFkZXItY29sb3ItYmcgICAgOiAkcHJpbWFyeS1kYXJrO1xuXG4vLyBTaWRlbmF2IFtNZW51XVxuJHNpZGVuYXYtbWVudS1zaXplLXdpZHRoICAgIDogMjQwcHg7XG4kc2lkZW5hdi1tZW51LXNpemUtYXZhdGFyICAgOiA2NHB4O1xuJHNpZGVuYXYtbWVudS1jb2xvci10eCAgICAgIDogJHByaW1hcnktcmVndWxhcjtcbiRzaWRlbmF2LW1lbnUtY29sb3ItYmcgICAgICA6IHRpbnQoJHByaW1hcnktbGlnaHQsIDcwJSk7XG5cbi8vIFNpZGVuYXYgW0ZpbHRlcl1cbiRzaWRlbmF2LWZpbHRlci1zaXplLXdpZHRoICA6IDMyMHB4O1xuJHNpZGVuYXYtZmlsdGVyLWNvbG9yLWJnICAgIDogJG1kLXdoaXRlO1xuXG4vLyBTZWVrZXJcbiRzZWVrZXItY29sb3ItdHggICAgICAgICAgICA6ICRtZC1ncmV5LTYwMDtcbiRzZWVrZXItY29sb3ItdHgtYWN0aXZlICAgICA6ICRhY2NlbnQtcmVndWxhcjtcbiRzZWVrZXItY29sb3ItYmcgICAgICAgICAgICA6ICRtZC13aGl0ZTtcbiRzZWVrZXItY29sb3ItYmctY29udGVudCAgICA6IHRpbnQoJHByaW1hcnktcmVndWxhciwgOTAlKTtcblxuLy8gU3ViaGVhZGVyXG4kc3ViaGVhZGVyLWNvbG9yLXR4IDogJG1kLWdyZXktODAwO1xuJHN1YmhlYWRlci1jb2xvci1iZyA6IHRpbnQoJGJvZHktY29sb3ItYmcsIDMwJSk7XG4vLyAkc3ViaGVhZGVyLWNvbG9yLWJnIDogcmdiYSgkbWQtd2hpdGUsIDAuOSk7XG5cbi8vIE1lbnVcbiRtZW51LWNvbG9yLXR4IDogJHByaW1hcnktcmVndWxhcjtcbiRtZW51LWNvbG9yLWJnIDogdGludCgkcHJpbWFyeS1saWdodCwgNzAlKTtcblxuLy8gQ2FyZFxuJGNhcmQtY29sb3ItdHggOiAkcHJpbWFyeS1yZWd1bGFyO1xuJGNhcmQtY29sb3ItYmcgOiAkbWQtd2hpdGU7XG4kY2FyZC1jb2xvci1pYyA6IHRpbnQoJGNhcmQtY29sb3ItdHgsIDIwJSk7XG5cbiRjYXJkLXRvb2xiYXItaGVpZ2h0ICAgIDogNTZweDtcbiRjYXJkLXRvb2xiYXItY29sb3ItYmcgIDogJG1kLXdoaXRlO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaXplXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHZhbHVlIGluIGAkc2l6ZWAgaXQgaXMgdXNlZCBmb3IgYm90aCB3aWR0aCBhbmQgaGVpZ2h0LiBBbGwgdW5pdHMgYXJlIHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0byAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDJlbTtcbi8vLyAgICAgaGVpZ2h0OiAyZW07XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcblxuQG1peGluIHNpemUoJHZhbHVlKSB7XG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XG4gICRoZWlnaHQ6ICR3aWR0aDtcblxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcbiAgICAkaGVpZ2h0OiBudGgoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCRoZWlnaHQpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGhlaWdodH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkaGVpZ2h0YCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gIEBpZiBpcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JHdpZHRofWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCR3aWR0aGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIiRtZC1yZWQtNTA6ICNmZmViZWU7XG4kbWQtcmVkLTEwMDogI2ZmY2RkMjtcbiRtZC1yZWQtMjAwOiAjZWY5YTlhO1xuJG1kLXJlZC0zMDA6ICNlNTczNzM7XG4kbWQtcmVkLTQwMDogI2VmNTM1MDtcbiRtZC1yZWQtNTAwOiAjZjQ0MzM2O1xuJG1kLXJlZC02MDA6ICNlNTM5MzU7XG4kbWQtcmVkLTcwMDogI2QzMmYyZjtcbiRtZC1yZWQtODAwOiAjYzYyODI4O1xuJG1kLXJlZC05MDA6ICNiNzFjMWM7XG4kbWQtcmVkLWExMDA6ICNmZjhhODA7XG4kbWQtcmVkLWEyMDA6ICNmZjUyNTI7XG4kbWQtcmVkLWE0MDA6ICNmZjE3NDQ7XG4kbWQtcmVkLWE3MDA6ICNkNTAwMDA7XG5cbiRtZC1waW5rLTUwOiAjZmNlNGVjO1xuJG1kLXBpbmstMTAwOiAjZjhiYmQwO1xuJG1kLXBpbmstMjAwOiAjZjQ4ZmIxO1xuJG1kLXBpbmstMzAwOiAjZjA2MjkyO1xuJG1kLXBpbmstNDAwOiAjZWM0MDdhO1xuJG1kLXBpbmstNTAwOiAjZTkxZTYzO1xuJG1kLXBpbmstNjAwOiAjZDgxYjYwO1xuJG1kLXBpbmstNzAwOiAjYzIxODViO1xuJG1kLXBpbmstODAwOiAjYWQxNDU3O1xuJG1kLXBpbmstOTAwOiAjODgwZTRmO1xuJG1kLXBpbmstYTEwMDogI2ZmODBhYjtcbiRtZC1waW5rLWEyMDA6ICNmZjQwODE7XG4kbWQtcGluay1hNDAwOiAjZjUwMDU3O1xuJG1kLXBpbmstYTcwMDogI2M1MTE2MjtcblxuJG1kLXB1cnBsZS01MDogI2YzZTVmNTtcbiRtZC1wdXJwbGUtMTAwOiAjZTFiZWU3O1xuJG1kLXB1cnBsZS0yMDA6ICNjZTkzZDg7XG4kbWQtcHVycGxlLTMwMDogI2JhNjhjODtcbiRtZC1wdXJwbGUtNDAwOiAjYWI0N2JjO1xuJG1kLXB1cnBsZS01MDA6ICM5YzI3YjA7XG4kbWQtcHVycGxlLTYwMDogIzhlMjRhYTtcbiRtZC1wdXJwbGUtNzAwOiAjN2IxZmEyO1xuJG1kLXB1cnBsZS04MDA6ICM2YTFiOWE7XG4kbWQtcHVycGxlLTkwMDogIzRhMTQ4YztcbiRtZC1wdXJwbGUtYTEwMDogI2VhODBmYztcbiRtZC1wdXJwbGUtYTIwMDogI2UwNDBmYjtcbiRtZC1wdXJwbGUtYTQwMDogI2Q1MDBmOTtcbiRtZC1wdXJwbGUtYTcwMDogI2FhMDBmZjtcblxuJG1kLWRlZXAtcHVycGxlLTUwOiAjZWRlN2Y2O1xuJG1kLWRlZXAtcHVycGxlLTEwMDogI2QxYzRlOTtcbiRtZC1kZWVwLXB1cnBsZS0yMDA6ICNiMzlkZGI7XG4kbWQtZGVlcC1wdXJwbGUtMzAwOiAjOTU3NWNkO1xuJG1kLWRlZXAtcHVycGxlLTQwMDogIzdlNTdjMjtcbiRtZC1kZWVwLXB1cnBsZS01MDA6ICM2NzNhYjc7XG4kbWQtZGVlcC1wdXJwbGUtNjAwOiAjNWUzNWIxO1xuJG1kLWRlZXAtcHVycGxlLTcwMDogIzUxMmRhODtcbiRtZC1kZWVwLXB1cnBsZS04MDA6ICM0NTI3YTA7XG4kbWQtZGVlcC1wdXJwbGUtOTAwOiAjMzExYjkyO1xuJG1kLWRlZXAtcHVycGxlLWExMDA6ICNiMzg4ZmY7XG4kbWQtZGVlcC1wdXJwbGUtYTIwMDogIzdjNGRmZjtcbiRtZC1kZWVwLXB1cnBsZS1hNDAwOiAjNjUxZmZmO1xuJG1kLWRlZXAtcHVycGxlLWE3MDA6ICM2MjAwZWE7XG5cbiRtZC1pbmRpZ28tNTA6ICNlOGVhZjY7XG4kbWQtaW5kaWdvLTEwMDogI2M1Y2FlOTtcbiRtZC1pbmRpZ28tMjAwOiAjOWZhOGRhO1xuJG1kLWluZGlnby0zMDA6ICM3OTg2Y2I7XG4kbWQtaW5kaWdvLTQwMDogIzVjNmJjMDtcbiRtZC1pbmRpZ28tNTAwOiAjM2Y1MWI1O1xuJG1kLWluZGlnby02MDA6ICMzOTQ5YWI7XG4kbWQtaW5kaWdvLTcwMDogIzMwM2Y5ZjtcbiRtZC1pbmRpZ28tODAwOiAjMjgzNTkzO1xuJG1kLWluZGlnby05MDA6ICMxYTIzN2U7XG4kbWQtaW5kaWdvLWExMDA6ICM4YzllZmY7XG4kbWQtaW5kaWdvLWEyMDA6ICM1MzZkZmU7XG4kbWQtaW5kaWdvLWE0MDA6ICMzZDVhZmU7XG4kbWQtaW5kaWdvLWE3MDA6ICMzMDRmZmU7XG5cbiRtZC1ibHVlLTUwOiAjZTNmMmZkO1xuJG1kLWJsdWUtMTAwOiAjYmJkZWZiO1xuJG1kLWJsdWUtMjAwOiAjOTBjYWY5O1xuJG1kLWJsdWUtMzAwOiAjNjRiNWY2O1xuJG1kLWJsdWUtNDAwOiAjNDJhNWY1O1xuJG1kLWJsdWUtNTAwOiAjMjE5NmYzO1xuJG1kLWJsdWUtNjAwOiAjMWU4OGU1O1xuJG1kLWJsdWUtNzAwOiAjMTk3NmQyO1xuJG1kLWJsdWUtODAwOiAjMTU2NWMwO1xuJG1kLWJsdWUtOTAwOiAjMGQ0N2ExO1xuJG1kLWJsdWUtYTEwMDogIzgyYjFmZjtcbiRtZC1ibHVlLWEyMDA6ICM0NDhhZmY7XG4kbWQtYmx1ZS1hNDAwOiAjMjk3OWZmO1xuJG1kLWJsdWUtYTcwMDogIzI5NjJmZjtcblxuJG1kLWxpZ2h0LWJsdWUtNTA6ICNlMWY1ZmU7XG4kbWQtbGlnaHQtYmx1ZS0xMDA6ICNiM2U1ZmM7XG4kbWQtbGlnaHQtYmx1ZS0yMDA6ICM4MWQ0ZmE7XG4kbWQtbGlnaHQtYmx1ZS0zMDA6ICM0ZmMzZjc7XG4kbWQtbGlnaHQtYmx1ZS00MDA6ICMyOWI2ZjY7XG4kbWQtbGlnaHQtYmx1ZS01MDA6ICMwM2E5ZjQ7XG4kbWQtbGlnaHQtYmx1ZS02MDA6ICMwMzliZTU7XG4kbWQtbGlnaHQtYmx1ZS03MDA6ICMwMjg4ZDE7XG4kbWQtbGlnaHQtYmx1ZS04MDA6ICMwMjc3YmQ7XG4kbWQtbGlnaHQtYmx1ZS05MDA6ICMwMTU3OWI7XG4kbWQtbGlnaHQtYmx1ZS1hMTAwOiAjODBkOGZmO1xuJG1kLWxpZ2h0LWJsdWUtYTIwMDogIzQwYzRmZjtcbiRtZC1saWdodC1ibHVlLWE0MDA6ICMwMGIwZmY7XG4kbWQtbGlnaHQtYmx1ZS1hNzAwOiAjMDA5MWVhO1xuXG4kbWQtY3lhbi01MDogI2UwZjdmYTtcbiRtZC1jeWFuLTEwMDogI2IyZWJmMjtcbiRtZC1jeWFuLTIwMDogIzgwZGVlYTtcbiRtZC1jeWFuLTMwMDogIzRkZDBlMTtcbiRtZC1jeWFuLTQwMDogIzI2YzZkYTtcbiRtZC1jeWFuLTUwMDogIzAwYmNkNDtcbiRtZC1jeWFuLTYwMDogIzAwYWNjMTtcbiRtZC1jeWFuLTcwMDogIzAwOTdhNztcbiRtZC1jeWFuLTgwMDogIzAwODM4ZjtcbiRtZC1jeWFuLTkwMDogIzAwNjA2NDtcbiRtZC1jeWFuLWExMDA6ICM4NGZmZmY7XG4kbWQtY3lhbi1hMjAwOiAjMThmZmZmO1xuJG1kLWN5YW4tYTQwMDogIzAwZTVmZjtcbiRtZC1jeWFuLWE3MDA6ICMwMGI4ZDQ7XG5cbiRtZC10ZWFsLTUwOiAjZTBmMmYxO1xuJG1kLXRlYWwtMTAwOiAjYjJkZmRiO1xuJG1kLXRlYWwtMjAwOiAjODBjYmM0O1xuJG1kLXRlYWwtMzAwOiAjNGRiNmFjO1xuJG1kLXRlYWwtNDAwOiAjMjZhNjlhO1xuJG1kLXRlYWwtNTAwOiAjMDA5Njg4O1xuJG1kLXRlYWwtNjAwOiAjMDA4OTdiO1xuJG1kLXRlYWwtNzAwOiAjMDA3OTZiO1xuJG1kLXRlYWwtODAwOiAjMDA2OTVjO1xuJG1kLXRlYWwtOTAwOiAjMDA0ZDQwO1xuJG1kLXRlYWwtYTEwMDogI2E3ZmZlYjtcbiRtZC10ZWFsLWEyMDA6ICM2NGZmZGE7XG4kbWQtdGVhbC1hNDAwOiAjMWRlOWI2O1xuJG1kLXRlYWwtYTcwMDogIzAwYmZhNTtcblxuJG1kLWdyZWVuLTUwOiAjZThmNWU5O1xuJG1kLWdyZWVuLTEwMDogI2M4ZTZjOTtcbiRtZC1ncmVlbi0yMDA6ICNhNWQ2YTc7XG4kbWQtZ3JlZW4tMzAwOiAjODFjNzg0O1xuJG1kLWdyZWVuLTQwMDogIzY2YmI2YTtcbiRtZC1ncmVlbi01MDA6ICM0Y2FmNTA7XG4kbWQtZ3JlZW4tNjAwOiAjNDNhMDQ3O1xuJG1kLWdyZWVuLTcwMDogIzM4OGUzYztcbiRtZC1ncmVlbi04MDA6ICMyZTdkMzI7XG4kbWQtZ3JlZW4tOTAwOiAjMWI1ZTIwO1xuJG1kLWdyZWVuLWExMDA6ICNiOWY2Y2E7XG4kbWQtZ3JlZW4tYTIwMDogIzY5ZjBhZTtcbiRtZC1ncmVlbi1hNDAwOiAjMDBlNjc2O1xuJG1kLWdyZWVuLWE3MDA6ICMwMGM4NTM7XG5cbiRtZC1saWdodC1ncmVlbi01MDogI2YxZjhlOTtcbiRtZC1saWdodC1ncmVlbi0xMDA6ICNkY2VkYzg7XG4kbWQtbGlnaHQtZ3JlZW4tMjAwOiAjYzVlMWE1O1xuJG1kLWxpZ2h0LWdyZWVuLTMwMDogI2FlZDU4MTtcbiRtZC1saWdodC1ncmVlbi00MDA6ICM5Y2NjNjU7XG4kbWQtbGlnaHQtZ3JlZW4tNTAwOiAjOGJjMzRhO1xuJG1kLWxpZ2h0LWdyZWVuLTYwMDogIzdjYjM0MjtcbiRtZC1saWdodC1ncmVlbi03MDA6ICM2ODlmMzg7XG4kbWQtbGlnaHQtZ3JlZW4tODAwOiAjNTU4YjJmO1xuJG1kLWxpZ2h0LWdyZWVuLTkwMDogIzMzNjkxZTtcbiRtZC1saWdodC1ncmVlbi1hMTAwOiAjY2NmZjkwO1xuJG1kLWxpZ2h0LWdyZWVuLWEyMDA6ICNiMmZmNTk7XG4kbWQtbGlnaHQtZ3JlZW4tYTQwMDogIzc2ZmYwMztcbiRtZC1saWdodC1ncmVlbi1hNzAwOiAjNjRkZDE3O1xuXG4kbWQtbGltZS01MDogI2Y5ZmJlNztcbiRtZC1saW1lLTEwMDogI2YwZjRjMztcbiRtZC1saW1lLTIwMDogI2U2ZWU5YztcbiRtZC1saW1lLTMwMDogI2RjZTc3NTtcbiRtZC1saW1lLTQwMDogI2Q0ZTE1NztcbiRtZC1saW1lLTUwMDogI2NkZGMzOTtcbiRtZC1saW1lLTYwMDogI2MwY2EzMztcbiRtZC1saW1lLTcwMDogI2FmYjQyYjtcbiRtZC1saW1lLTgwMDogIzllOWQyNDtcbiRtZC1saW1lLTkwMDogIzgyNzcxNztcbiRtZC1saW1lLWExMDA6ICNmNGZmODE7XG4kbWQtbGltZS1hMjAwOiAjZWVmZjQxO1xuJG1kLWxpbWUtYTQwMDogI2M2ZmYwMDtcbiRtZC1saW1lLWE3MDA6ICNhZWVhMDA7XG5cbiRtZC15ZWxsb3ctNTA6ICNmZmZkZTc7XG4kbWQteWVsbG93LTEwMDogI2ZmZjljNDtcbiRtZC15ZWxsb3ctMjAwOiAjZmZmNTlkO1xuJG1kLXllbGxvdy0zMDA6ICNmZmYxNzY7XG4kbWQteWVsbG93LTQwMDogI2ZmZWU1ODtcbiRtZC15ZWxsb3ctNTAwOiAjZmZlYjNiO1xuJG1kLXllbGxvdy02MDA6ICNmZGQ4MzU7XG4kbWQteWVsbG93LTcwMDogI2ZiYzAyZDtcbiRtZC15ZWxsb3ctODAwOiAjZjlhODI1O1xuJG1kLXllbGxvdy05MDA6ICNmNTdmMTc7XG4kbWQteWVsbG93LWExMDA6ICNmZmZmOGQ7XG4kbWQteWVsbG93LWEyMDA6ICNmZmZmMDA7XG4kbWQteWVsbG93LWE0MDA6ICNmZmVhMDA7XG4kbWQteWVsbG93LWE3MDA6ICNmZmQ2MDA7XG5cbiRtZC1hbWJlci01MDogI2ZmZjhlMTtcbiRtZC1hbWJlci0xMDA6ICNmZmVjYjM7XG4kbWQtYW1iZXItMjAwOiAjZmZlMDgyO1xuJG1kLWFtYmVyLTMwMDogI2ZmZDU0ZjtcbiRtZC1hbWJlci00MDA6ICNmZmNhMjg7XG4kbWQtYW1iZXItNTAwOiAjZmZjMTA3O1xuJG1kLWFtYmVyLTYwMDogI2ZmYjMwMDtcbiRtZC1hbWJlci03MDA6ICNmZmEwMDA7XG4kbWQtYW1iZXItODAwOiAjZmY4ZjAwO1xuJG1kLWFtYmVyLTkwMDogI2ZmNmYwMDtcbiRtZC1hbWJlci1hMTAwOiAjZmZlNTdmO1xuJG1kLWFtYmVyLWEyMDA6ICNmZmQ3NDA7XG4kbWQtYW1iZXItYTQwMDogI2ZmYzQwMDtcbiRtZC1hbWJlci1hNzAwOiAjZmZhYjAwO1xuXG4kbWQtb3JhbmdlLTUwOiAjZmZmM2UwO1xuJG1kLW9yYW5nZS0xMDA6ICNmZmUwYjI7XG4kbWQtb3JhbmdlLTIwMDogI2ZmY2M4MDtcbiRtZC1vcmFuZ2UtMzAwOiAjZmZiNzRkO1xuJG1kLW9yYW5nZS00MDA6ICNmZmE3MjY7XG4kbWQtb3JhbmdlLTUwMDogI2ZmOTgwMDtcbiRtZC1vcmFuZ2UtNjAwOiAjZmI4YzAwO1xuJG1kLW9yYW5nZS03MDA6ICNmNTdjMDA7XG4kbWQtb3JhbmdlLTgwMDogI2VmNmMwMDtcbiRtZC1vcmFuZ2UtOTAwOiAjZTY1MTAwO1xuJG1kLW9yYW5nZS1hMTAwOiAjZmZkMTgwO1xuJG1kLW9yYW5nZS1hMjAwOiAjZmZhYjQwO1xuJG1kLW9yYW5nZS1hNDAwOiAjZmY5MTAwO1xuJG1kLW9yYW5nZS1hNzAwOiAjZmY2ZDAwO1xuXG4kbWQtZGVlcC1vcmFuZ2UtNTA6ICNmYmU5ZTc7XG4kbWQtZGVlcC1vcmFuZ2UtMTAwOiAjZmZjY2JjO1xuJG1kLWRlZXAtb3JhbmdlLTIwMDogI2ZmYWI5MTtcbiRtZC1kZWVwLW9yYW5nZS0zMDA6ICNmZjhhNjU7XG4kbWQtZGVlcC1vcmFuZ2UtNDAwOiAjZmY3MDQzO1xuJG1kLWRlZXAtb3JhbmdlLTUwMDogI2ZmNTcyMjtcbiRtZC1kZWVwLW9yYW5nZS02MDA6ICNmNDUxMWU7XG4kbWQtZGVlcC1vcmFuZ2UtNzAwOiAjZTY0YTE5O1xuJG1kLWRlZXAtb3JhbmdlLTgwMDogI2Q4NDMxNTtcbiRtZC1kZWVwLW9yYW5nZS05MDA6ICNiZjM2MGM7XG4kbWQtZGVlcC1vcmFuZ2UtYTEwMDogI2ZmOWU4MDtcbiRtZC1kZWVwLW9yYW5nZS1hMjAwOiAjZmY2ZTQwO1xuJG1kLWRlZXAtb3JhbmdlLWE0MDA6ICNmZjNkMDA7XG4kbWQtZGVlcC1vcmFuZ2UtYTcwMDogI2RkMmMwMDtcblxuJG1kLWJyb3duLTUwOiAjZWZlYmU5O1xuJG1kLWJyb3duLTEwMDogI2Q3Y2NjODtcbiRtZC1icm93bi0yMDA6ICNiY2FhYTQ7XG4kbWQtYnJvd24tMzAwOiAjYTE4ODdmO1xuJG1kLWJyb3duLTQwMDogIzhkNmU2MztcbiRtZC1icm93bi01MDA6ICM3OTU1NDg7XG4kbWQtYnJvd24tNjAwOiAjNmQ0YzQxO1xuJG1kLWJyb3duLTcwMDogIzVkNDAzNztcbiRtZC1icm93bi04MDA6ICM0ZTM0MmU7XG4kbWQtYnJvd24tOTAwOiAjM2UyNzIzO1xuXG4kbWQtZ3JleS01MDogI2ZhZmFmYTtcbiRtZC1ncmV5LTEwMDogI2Y1ZjVmNTtcbiRtZC1ncmV5LTIwMDogI2VlZWVlZTtcbiRtZC1ncmV5LTMwMDogI2UwZTBlMDtcbiRtZC1ncmV5LTQwMDogI2JkYmRiZDtcbiRtZC1ncmV5LTUwMDogIzllOWU5ZTtcbiRtZC1ncmV5LTYwMDogIzc1NzU3NTtcbiRtZC1ncmV5LTcwMDogIzYxNjE2MTtcbiRtZC1ncmV5LTgwMDogIzQyNDI0MjtcbiRtZC1ncmV5LTkwMDogIzIxMjEyMTtcblxuJG1kLWJsdWUtZ3JleS01MDogI2VjZWZmMTtcbiRtZC1ibHVlLWdyZXktMTAwOiAjY2ZkOGRjO1xuJG1kLWJsdWUtZ3JleS0yMDA6ICNiMGJlYzU7XG4kbWQtYmx1ZS1ncmV5LTMwMDogIzkwYTRhZTtcbiRtZC1ibHVlLWdyZXktNDAwOiAjNzg5MDljO1xuJG1kLWJsdWUtZ3JleS01MDA6ICM2MDdkOGI7XG4kbWQtYmx1ZS1ncmV5LTYwMDogIzU0NmU3YTtcbiRtZC1ibHVlLWdyZXktNzAwOiAjNDU1YTY0O1xuJG1kLWJsdWUtZ3JleS04MDA6ICMzNzQ3NGY7XG4kbWQtYmx1ZS1ncmV5LTkwMDogIzI2MzIzODtcblxuJG1kLXdoaXRlOiAjZmZmZmZmO1xuXG4kbWQtYmxhY2s6ICMwMDAwMDA7XG5cblxuIiwiLmR0cCA+IC5kdHAtY29udGVudCA+IC5kdHAtZGF0ZS12aWV3ID4gaGVhZGVyLmR0cC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1kYXJrO1xufVxuXG4uZHRwIGRpdi5kdHAtZGF0ZSxcbi5kdHAgZGl2LmR0cC10aW1lLFxuLmR0cCAuZHRwLWFjdHVhbC1tZXJpZGllbiBhLnNlbGVjdGVkLFxuLmR0cCAuZHRwLXBpY2tlci10aW1lID4gYS5kdHAtc2VsZWN0LWhvdXIuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1yZWd1bGFyO1xufVxuXG4uZHRwIC5wMTAgPiBhLFxuLmR0cCAuZHRwLWhhbmQub24sXG4uZHRwIHRhYmxlLmR0cC1waWNrZXItZGF5cyB0ciA+IHRkID4gYS5zZWxlY3RlZCxcbi5kdHAgLmR0cC1waWNrZXItdGltZSA+IGEuZHRwLXNlbGVjdC1taW51dGUuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1yZWd1bGFyO1xufVxuXG4uZHRwIGRpdi5kdHAtYWN0dWFsLXllYXIsXG4uZHRwIGRpdi5kdHAteWVhci1idG4ge1xuICBjb2xvcjogJHNlY29uZGFyeS1yZWd1bGFyO1xufVxuXG4uZHRwIC5kdHAtcGlja2VyLW1vbnRoIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBAaW5jbHVkZSBwYWRkaW5nKDhweCBudWxsKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktY29sb3ItYmc7XG4gIGNvbG9yOiAkcHJpbWFyeS1yZWd1bGFyO1xufVxuXG5tZC1pbnB1dC1jb250YWluZXIubWQtZGVmYXVsdC10aGVtZSAubWQtaW5wdXRbZGlzYWJsZWRdLFxubWQtaW5wdXQtY29udGFpbmVyIC5tZC1pbnB1dFtkaXNhYmxlZF0sXG5tZC1pbnB1dC1jb250YWluZXIubWQtZGVmYXVsdC10aGVtZSAubWQtaW5wdXQgW2Rpc2FibGVkXSxcbm1kLWlucHV0LWNvbnRhaW5lciAubWQtaW5wdXQgW2Rpc2FibGVkXSB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLC42KTtcbn1cbiIsImhlYWRlciB7XG4gIHotaW5kZXg6IDYwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgaGVhZGVyIHtcbiAgICBtZC10b29sYmFyIHtcbiAgICAgIC5tZC1idXR0b24ubWQtaWNvbi1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJtZC1jb250ZW50IHtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb2xvci1iZztcbn1cblxubWQtc2VsZWN0LW1lbnUgbWQtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtZC13aGl0ZTtcblxuICBtZC1vcHRpb24ge1xuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICAkbWVudS1jb2xvci10eCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtY29sb3ItYmcgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxubWQtdG9vbGJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3ItYmcgIWltcG9ydGFudDtcbn1cblxuLm1kLWNvbnRlbnQtc3ViaGVhZGVyIHtcbiAgQGluY2x1ZGUgcGFkZGluZyg0cHggOHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHN1YmhlYWRlci1jb2xvci1iZztcbiAgY29sb3I6ICRzdWJoZWFkZXItY29sb3ItdHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxubWQtY2hlY2tib3gubWQtY2hlY2tlZCAubWQtaWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzZWVrZXItY29sb3ItdHgtYWN0aXZlO1xuICAvLyBib3JkZXItY29sb3I6ICRzZWVrZXItY29sb3ItYmc7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJG1kLXdoaXRlO1xuICB9XG59XG5cbm1kLXRvb2x0aXAge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5mYWIge1xuICAmLWNsb3NlZC1pY29uLCAmLW9wZW4taWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTdweDtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5cbiAgJi1vcGVuLWljb24ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuXG4gIC5tZC1pcy1vcGVuICYtY2xvc2VkLWljb24ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgfVxuXG4gIC5tZC1pcy1vcGVuICYtb3Blbi1pY29uIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbiIsIm1kLW1lbnUtY29udGVudCB7XG4gIC5tZC1idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA0cHggMDtcblxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICAkbWVudS1jb2xvci10eCAhaW1wb3J0YW50O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtY29sb3ItYmcgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJG1lbnUtY29sb3ItdHggIWltcG9ydGFudDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkbWVudS1jb2xvci1iZywgMTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIm1kLXRhYnMge1xuICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgOHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci1iZztcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZC1ncmV5LTQwMDtcbiAgYm9yZGVyLXJhZGl1czogMDtcblxuICAmOm5vdCgubWQtbm8tdGFiLWNvbnRlbnQpOm5vdCgubWQtZHluYW1pYy1oZWlnaHQpIHtcbiAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cblxuICBtZC1pbmstYmFyIHtcbiAgICBjb2xvcjogJHNlZWtlci1jb2xvci10eC1hY3RpdmUgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAkc2Vla2VyLWNvbG9yLXR4LWFjdGl2ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgbWQtdGFiLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWNvbG9yLWJnO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbWQtZ3JleS00MDA7XG4gIH1cblxuICBtZC1pY29uIHtcbiAgICBjb2xvcjogJHNlZWtlci1jb2xvci10eDtcbiAgfVxuXG4gIC5tZC10YWIge1xuICAgIGNvbG9yOiAkc2Vla2VyLWNvbG9yLXR4ICFpbXBvcnRhbnQ7XG5cbiAgICAmLm1kLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJHNlZWtlci1jb2xvci10eC1hY3RpdmUgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gIG1kLXRhYnMge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAyNHB4KTtcbiAgfVxufVxuXG4ubWQtdGFiLWludGVydmFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci1iZy1jb250ZW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1kLWdyZXktNDAwO1xuXG4gIGRpdiA+ICoge1xuICAgIG1hcmdpbi1yaWdodDogMzJweDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxuXG4gICNxdWlja0ludGVydmFsICB7IG1pbi13aWR0aDogMTIwcHg7IH1cbiAgI3BlcmlvZEludGVydmFsIHsgbWluLXdpZHRoOiAxNjBweDsgfVxuXG4gIC5tZC1jb250ZW50LXRpdGxlIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAxNnB4IG51bGwpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC13ZWlnaHQ6ICRib2xkO1xuICB9XG5cbiAgbWQtaW5wdXQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgLm1kLWVycm9ycy1zcGFjZXIge1xuICAgICAgbWluLWhlaWdodDogOHB4O1xuICAgIH1cbiAgfVxuXG4gIG9sLCB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgbGkge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygycHggOHB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgIGNvbG9yOiAkbWQtZ3JleS04MDA7XG4gICAgICBmb250LXdlaWdodDogJG1lZGl1bTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciwgJjphY3RpdmUsICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG1kLXdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LXJlZ3VsYXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnN1YmhlYWRlci1wZXJpb2Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3ViaGVhZGVyLWNvbG9yLWJnO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1kLWdyZXktNDAwO1xuXG4gIC5tZC1zdWJoZWFkZXItaW5uZXIge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMCAzMnB4IDAgMTZweCk7XG4gIH1cblxuICAuc3ViaGVhZGVyLXRpdGxlIHtcbiAgICBjb2xvcjogJG1kLWdyZXktNjAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG5cbiAgYnV0dG9uIHtcbiAgICAvLyAmOmZpcnN0LW9mLXR5cGUge1xuICAgIC8vICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgLy8gfVxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICBtZC1pbnB1dC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hcmdpbig0cHggbnVsbCk7XG5cbiAgICAubWQtZXJyb3JzLXNwYWNlciB7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbiNzZWVrZXJTdW1tYXJ5IHtcbiAgbWQtcGFnaW5hdGlvbi13cmFwcGVyIHtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICB9XG59XG5cbiNzZWVrZXJDb21wYXJhdGl2ZSB7XG4gIG1kLXBhZ2luYXRpb24td3JhcHBlciB7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxufVxuIiwibWQtc2lkZW5hdiB7XG5cbiAgLy8gbWQtbGlzdCB7XG4gIC8vICAgQGluY2x1ZGUgcGFkZGluZygwIG51bGwpO1xuICAvLyB9XG5cbiAgbWQtY29udGVudCwgbWQtY29udGVudCAubWQtc3ViaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIG1kLWRpdmlkZXIge1xuICAgIEBpbmNsdWRlIG1hcmdpbig0cHggbnVsbCk7XG4gIH1cblxuICBtZC1saXN0LWl0ZW0ge1xuXG4gICAgbWQtaWNvbiB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMCA4cHggMCAwICFpbXBvcnRhbnQpO1xuICAgIH1cblxuICAgIC5tZC1saXN0LWl0ZW0taW5uZXIge1xuICAgICAgbWFyZ2luLXRvcCAgICA6IDAgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b20gOiAwICFpbXBvcnRhbnQ7XG5cbiAgICAgIG1kLWljb24ge1xuICAgICAgICBtYXJnaW4tdG9wICAgIDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tIDogMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLCAmOmZvY3VzLCAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlbmF2LW1lbnUtY29sb3ItYmc7XG4gICAgICBjb2xvcjogJHNpZGVuYXYtbWVudS1jb2xvci10eDtcblxuICAgICAgbWQtaWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2lkZW5hdi1tZW51LWNvbG9yLXR4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1kLWF2YXRhciB7XG4gICAgQGluY2x1ZGUgc2l6ZSgkc2lkZW5hdi1tZW51LXNpemUtYXZhdGFyKTtcblxuICAgIGltZyB7XG4gICAgICBAaW5jbHVkZSBzaXplKCRzaWRlbmF2LW1lbnUtc2l6ZS1hdmF0YXIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxuXG4gIC50b29sYmFyIHtcbiAgICAmLWhlYWRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uL2Fzc2V0cy9pbWFnZXMvYmctaGVhZGVyLnBuZycpO1xuICAgICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuICB9XG59XG5cbiNzaWRlbmF2TWVudSB7XG4gIHdpZHRoICAgICA6ICRzaWRlbmF2LW1lbnUtc2l6ZS13aWR0aDtcbiAgbWF4LXdpZHRoIDogJHNpZGVuYXYtbWVudS1zaXplLXdpZHRoO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG5cbiAgbWQtdG9vbGJhciB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICB9XG5cbiAgbWQtY29udGVudCB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjgwcHgpIHtcbiAgI3NpZGVuYXZNZW51IHtcbiAgICB6LWluZGV4OiA1ODtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRtZC1ncmV5LTQwMDtcbiAgfVxufVxuXG4jc2lkZW5hdkZpbHRlciB7XG4gIHdpZHRoICAgICA6ICRzaWRlbmF2LWZpbHRlci1zaXplLXdpZHRoO1xuICBtYXgtd2lkdGggOiAkc2lkZW5hdi1maWx0ZXItc2l6ZS13aWR0aDtcbiAgcG9zaXRpb24gIDogZml4ZWQ7XG4gIHRvcDogMDtcblxuICBtZC10YWJzIHtcbiAgICBtZC10YWItY29udGVudCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZW5hdi1maWx0ZXItY29sb3ItYmc7XG4gICAgfVxuICB9XG5cbiAgbWQtbGlzdC1pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdGludCgkc2Vla2VyLWNvbG9yLWJnLWNvbnRlbnQsIDI1JSk7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwidGhlYWQge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udGQtY29sb3JlZCB7XG4gIG1heC13aWR0aDogMTAwcHg7XG59XG4iLCJoMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBjb2xvcjogJHByaW1hcnktcmVndWxhcjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5zbWFsbCB7XG4gIG9wYWNpdHk6IC42O1xufVxuXG5hIHtcbiAgY29sb3I6ICRwcmltYXJ5LXJlZ3VsYXI7XG5cbiAgJjpmb2N1cyxcbiAgJjpob3ZlcixcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1kYXJrO1xuICB9XG59XG4iLCJodG1sLCBib2R5IHtcbiAgQGluY2x1ZGUgc2l6ZSgxMDAlKTtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYm9keS1jb2xvci1iZztcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmRpc3BsYXktZmxleCB7IGRpc3BsYXk6IGZsZXg7IH1cblxuLm5vLXBhZGRpbmcgIHsgQGluY2x1ZGUgcGFkZGluZygwKTsgfVxuLm5vLW1hcmdpbiAgIHsgQGluY2x1ZGUgbWFyZ2luKDApOyB9XG5cbi5wYWRkaW5nIHtcbiAgJi1zbSB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg4cHgpO1xuICAgICZfX3RiIHsgQGluY2x1ZGUgcGFkZGluZyg4cHggbnVsbCk7IH1cbiAgICAmX19ybCB7IEBpbmNsdWRlIHBhZGRpbmcobnVsbCA4cHgpOyB9XG4gIH1cbiAgJi1tZCB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygxNnB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIHBhZGRpbmcoMTZweCBudWxsKTsgfVxuICAgICZfX3JsIHsgQGluY2x1ZGUgcGFkZGluZyhudWxsIDE2cHgpOyB9XG4gIH1cbiAgJi1sZyB7XG4gICAgQGluY2x1ZGUgcGFkZGluZygzMnB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIHBhZGRpbmcoMzJweCBudWxsKTsgfVxuICAgICZfX3JsIHsgQGluY2x1ZGUgcGFkZGluZyhudWxsIDMycHgpOyB9XG4gIH1cbn1cblxuLm1hcmdpbiB7XG4gICYtc20ge1xuICAgIEBpbmNsdWRlIG1hcmdpbig4cHgpO1xuICAgICZfX3RiIHsgQGluY2x1ZGUgbWFyZ2luKDhweCBudWxsKTsgfVxuICAgICZfX3JsIHsgQGluY2x1ZGUgbWFyZ2luKG51bGwgOHB4KTsgfVxuICB9XG4gICYtbWQge1xuICAgIEBpbmNsdWRlIG1hcmdpbigxNnB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIG1hcmdpbigxNnB4IG51bGwpOyB9XG4gICAgJl9fcmwgeyBAaW5jbHVkZSBtYXJnaW4obnVsbCAxNnB4KTsgfVxuICB9XG4gICYtbGcge1xuICAgIEBpbmNsdWRlIG1hcmdpbigzMnB4KTtcbiAgICAmX190YiB7IEBpbmNsdWRlIG1hcmdpbigzMnB4IG51bGwpOyB9XG4gICAgJl9fcmwgeyBAaW5jbHVkZSBtYXJnaW4obnVsbCAzMnB4KTsgfVxuICB9XG4gICYtYXV0byB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byk7XG4gIH1cbn1cblxuLmZsb2F0IHtcbiAgJl9fbGVmdCAgIHsgZmxvYXQ6IGxlZnQ7IH1cbiAgJl9fcmlnaHQgIHsgZmxvYXQ6IHJpZ2h0OyB9XG59XG5cbi50ZXh0IHtcbiAgJl9fbGVmdCAgIHsgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAmX19jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgJl9fcmlnaHQgIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuICAmX19sb3dlcmNhc2UgIHsgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTsgfVxuICAmX191cHBlcmNhc2UgIHsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAmX19jYXBpdGFsaXplIHsgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7IH1cblxuICAmX190aGluICAgIHsgZm9udC13ZWlnaHQ6ICR0aGluOyB9XG4gICZfX2xpZ2h0ICAgeyBmb250LXdlaWdodDogJGxpZ2h0OyB9XG4gICZfX3JlZ3VsYXIgeyBmb250LXdlaWdodDogJHJlZ3VsYXI7IH1cbiAgJl9fbWVkaXVtICB7IGZvbnQtd2VpZ2h0OiAkbWVkaXVtOyB9XG4gICZfX2JvbGQgICAgeyBmb250LXdlaWdodDogJGJvbGQ7IH1cbiAgJl9fYmxhY2sgICB7IGZvbnQtd2VpZ2h0OiAkYmxhY2s7IH1cbn1cblxuLmJnIHtcbiAgJl9fbGlnaHQtcHJpbWFyeSAgICB7IGJhY2tncm91bmQtY29sb3I6ICRib2R5LWNvbG9yLWJnOyAgfVxuICAmX19saWdodC1zZWNvbmRhcnkgIHsgYmFja2dyb3VuZC1jb2xvcjogJHNlZWtlci1jb2xvci1iZy1jb250ZW50OyB9XG5cbiAgJl9fZGFyay1wcmltYXJ5ICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3ItYmc7ICB9XG4gICZfX2Rhcmstc2Vjb25kYXJ5ICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vla2VyLWNvbG9yLWJnOyB9XG59XG5cblxuLnJpYmJvbiB7XG4gIEBpbmNsdWRlIGZsZXgtc2hyaW5rKDApO1xuICBAaW5jbHVkZSBzaXplKDEwMCUgJHJpYmJvbi1zaXplLWhlaWdodCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyaWJib24tY29sb3ItYmc7XG59XG5cbi5tYWluIHtcbiAgQGluY2x1ZGUgZmxleC1zaHJpbmsoMCk7XG4gIEBpbmNsdWRlIG1hcmdpbigtJHJpYmJvbi1zaXplLWhlaWdodCBudWxsIG51bGwgbnVsbCk7XG59XG5cbi5sb2dvIHtcbiAgbWF4LWhlaWdodDogMzZweDtcbiAgQGluY2x1ZGUgbWFyZ2luKG51bGwgOHB4IG51bGwgbnVsbCk7XG59XG5cbi5sb2dpbiB7XG4gIHdpZHRoOiA0MDBweDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbWl4aW4gZm9yIGdlbmVyYXRpbmcgdmVuZG9yIHByZWZpeGVzIG9uIG5vbi1zdGFuZGFyZGl6ZWQgcHJvcGVydGllcy5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeFxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcHJlZml4ZXNcbi8vLyAgIFByZWZpeGVzIHRvIGRlZmluZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXdlYmtpdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbW96aWxsYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1vcGVyYVxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itc3BlY1xuXG5AbWl4aW4gcHJlZml4ZXIoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtb3oge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1vemlsbGEge1xuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBtcyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcbiAgICAgICAgLW1zLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBzcGVjIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1zcGVjIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSAge1xuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCkge1xuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgZmFsc2UgIWdsb2JhbDtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcbiAgZGlzcGxheTogYm94O1xufVxuXG5AbWl4aW4gYm94LW9yaWVudCgkb3JpZW50OiBpbmxpbmUtYXhpcykge1xuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxqdXN0aWZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkcGFjaywgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGJhc2VsaW5lfHN0cmV0Y2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWxpZ24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50OyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgoJHZhbHVlOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbi8vIGZsZXggfCBpbmxpbmUtZmxleFxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcbiAgICAvLyAyMDA5XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgZGlzcGxheTogLW1vei1ib3g7XG4gICAgZGlzcGxheTogYm94O1xuXG4gICAgLy8gMjAxMlxuICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgfSBAZWxzZSB7XG4gICAgZGlzcGxheTogJHZhbHVlO1xuICB9XG59XG5cbi8vIDIwMDkgLSBib3gtZmxleCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4IChkZWNpbWFsIHwgd2lkdGggZGVjaW1hbClcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXG5AbWl4aW4gZmxleCgkdmFsdWUpIHtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LW9yZGVyOiAkaW50O1xufVxuXG4vLyAyMDEyIC0gZmxleC1ncm93IChudW1iZXIpXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wb3NpdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtc2hyaW5rIChudW1iZXIpXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXNocmluaywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1iYXNpcywgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHdpZHRoO1xufVxuXG4vLyAyMDA5IC0gYm94LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcbi8vIDIwMTIgLSBqdXN0aWZ5LWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQpXG5AbWl4aW4ganVzdGlmeS1jb250ZW50KCR2YWx1ZTogZmxleC1zdGFydCkge1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLXNlbGYsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1saW5lLXBhY2s6ICR2YWx1ZS0yMDExO1xufVxuIiwiIC5teS1jaGFydCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB3aWR0aDogY2FsYyg1MCUgLSA0cHgpO1xuICAgICAgYm9yZGVyLXNpemluZzogYm9yZGVyLWJveDtcbiB9XG5cbiAuY29udGFpbmVyLWNoYXJ0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuIH1cblxuIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gICAgICAubXktY2hhcnQge1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gfVxuIiwiLmYtYnV0dG9uIHtcbiAgICAgIGhlaWdodDogNDhweDtcbiAgICAgIHBhZGRpbmc6IDAgMzJweDtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICNmYWZhZmE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkE0ODlCO1xuICAgICAgYm9yZGVyOiAzcHggc29saWQgIzZBNDg5QjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN0U1REFGO1xuICAgICAgfVxuICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzhmNjdjYTtcbiAgICAgIH1cbn1cbmYtYnV0dG9uLmYtYmxvY2sgYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uZi1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIGNvbG9yOiByZ2JhKDIzMCwgMjMwLCAyMzAsIDAuNzkpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTEsIDE0MCwgMTY2LCAwLjY3KTtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uZi1idXR0b24tbGlnaHQge1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAjRDlEOUQ5O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICAgIH1cbiAgICAgICY6YWN0aXZlIHtcblxuICAgICAgfVxufVxuIiwiLmYtaW5wdXQge1xuICBoZWlnaHQ6IDQ2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTJwdDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIGNvbG9yOiAjODg4ODg4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgbWluLXdpZHRoOiAwXG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjNTljNWQ1O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICNjOWM5Yzk7XG4gIH1cbn1cbmYtaW5wdXQuZi1ibG9jayAuZi1pbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcblxufVxuXG4uZi1pbnB1dC1ib3JkZXJsZXNzIHtcbiAgLmYtaW5wdXQge1xuICAgIGJvcmRlcjogMHB4O1xuICB9XG59XG5cbi5mLWlucHV0LW5vLXBhZGRpbmcge1xuICAuZi1pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbi5mLWlucHV0LW5vLWxlZnQtcGFkZGluZyB7XG4gIC5mLWlucHV0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cbiIsIi5mLWJveCB7XG4gICAgICB3aWR0aDogMzE3cHg7XG4gICAgICBoZWlnaHQ6IDQzMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNEOUQ5RDk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAvLyBib3gtc2hhZG93OiAwIDNweCA3cHggcmdiYSgwLDAsMCwwLjIpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4iLCIuZi1zZXBhcmF0b3Ige1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdpZHRoOiAyNzVweDtcbiAgICAgIGhlaWdodDogNHB4O1xuXG4gICAgICAuZi1zZXBhcmF0b3ItYmx1ZS0xIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTY0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCAjNTlDNUQ1O1xuICAgICAgfVxuXG4gICAgICAuZi1zZXBhcmF0b3ItYmx1ZS0yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDEyOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBib3JkZXItdG9wOiA0cHggc29saWQgIzM5OEJDMjtcbiAgICAgIH1cblxuICAgICAgLmYtc2VwYXJhdG9yLXB1cnBsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAyMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICM2QTQ4OUI7XG4gICAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */

/*# sourceMappingURL=../maps/styles/app-0a83354d87.css.map */
