@charset "UTF-8";
/**
 * 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 */
calcapp-stepper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-top: 2px;
  padding-bottom: 2px; }
  calcapp-stepper .button {
    -webkit-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-height: 0;
    position: relative;
    background-color: transparent;
    border-width: 1px 0px 1px 1px;
    border-radius: 0;
    text-align: center;
    padding: 0;
    font-size: 20px;
    z-index: 0; }
    calcapp-stepper .button:focus {
      outline: thin dotted;
      outline-offset: 3px; }
    calcapp-stepper .button .background {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: -1;
      opacity: 0;
      border-width: 1px 0px 1px 1px;
      border-color: inherit;
      border-radius: 0;
      transition: opacity 0.15s ease-in-out; }
      calcapp-stepper .button .background.is-activated {
        opacity: 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.
 */
/* 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
/**
 * 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/*
 * 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 {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster: http://www.sanbeiji.com/archives/953 */
    box-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%;
  -ms-touch-action: manipulation;
  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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
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(194,24,91);
  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; }

.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;
  word-wrap: normal;
  font-feature-settings: 'liga';
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased; }

/**
 * 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.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(33,150,243) !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(194,24,91) !important; }

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

.mdl-color-text--primary {
  color: rgb(33,150,243) !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(194,24,91) !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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-ripple {
  background: rgb(0,0,0);
  border-radius: 50%;
  height: 50px;
  left: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 50px;
  overflow: hidden; }
  .mdl-ripple.is-animating {
    transition: 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), -webkit-transform 0.3s cubic-bezier(0, 0, 0.2, 1);
    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);
    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), -webkit-transform 0.3s 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.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: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-content: center;
        -ms-flex-line-pack: center;
            align-content: center;
    -webkit-align-items: center;
        -ms-flex-align: 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(194,24,91);
    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(194,24,91);
    background: rgba(255,255,255,0.2);
    box-shadow: 0 0 1px gray; }
  .mdl-badge.mdl-badge--overlap {
    margin-right: 10px; }
    .mdl-badge.mdl-badge--overlap:after {
      right: -10px; }

/**
 * 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-button {
  background: transparent;
  border: none;
  border-radius: 2px;
  color: rgb(0,0,0);
  position: relative;
  height: 36px;
  margin: 0;
  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;
  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(33,150,243); }
    .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(33,150,243);
    color: rgb(255,255,255); }
    .mdl-button--raised.mdl-button--colored:hover {
      background-color: rgb(33,150,243); }
    .mdl-button--raised.mdl-button--colored:active {
      background-color: rgb(33,150,243); }
    .mdl-button--raised.mdl-button--colored:focus:not(:active) {
      background-color: rgb(33,150,243); }
    .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%;
    -webkit-transform: translate(-12px, -12px);
            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(194,24,91);
    color: rgb(255,255,255); }
    .mdl-button--fab.mdl-button--colored:hover {
      background-color: rgb(194,24,91); }
    .mdl-button--fab.mdl-button--colored:focus:not(:active) {
      background-color: rgb(194,24,91); }
    .mdl-button--fab.mdl-button--colored:active {
      background-color: rgb(194,24,91); }
    .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%;
    -webkit-transform: translate(-12px, -12px);
            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(33,150,243); }
  .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(33,150,243); }

.mdl-button--accent.mdl-button--accent {
  color: rgb(194,24,91); }
  .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(194,24,91); }

.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); }

.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: none; }

.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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-card {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          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(194,24,91);
  background-repeat: repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-origin: padding-box;
  background-attachment: scroll;
  box-sizing: border-box; }

.mdl-card__title {
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgb(0,0,0);
  display: block;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: stretch;
      -ms-flex-pack: stretch;
          justify-content: stretch;
  line-height: normal;
  padding: 16px 16px;
  -webkit-perspective-origin: 165px 56px;
          perspective-origin: 165px 56px;
  -webkit-transform-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 {
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end;
  color: inherit;
  display: block;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  font-size: 24px;
  font-weight: 300;
  line-height: normal;
  overflow: hidden;
  -webkit-transform-origin: 149px 48px;
          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: 1rem;
  line-height: 18px;
  overflow: hidden;
  padding: 16px 16px;
  width: 90%; }
  .mdl-card__supporting-text.mdl-card--border {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }

.mdl-card__actions {
  font-size: 16px;
  line-height: normal;
  width: 100%;
  background-color: transparent;
  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 {
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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;
    -ms-appearance: none;
    -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(33,150,243); }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
  .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(33,150,243, 0.26);
    background-color: rgba(33,150,243, 0.26); }

.mdl-checkbox__tick-outline {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-mask: url("/vendor/material-design-lite/src/images/tick-mask.svg?embed");
          mask: url("/vendor/material-design-lite/src/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(33,150,243) url("/vendor/material-design-lite/src/images/tick.svg?embed"); }
  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
    background: rgba(0,0,0, 0.26) url("/vendor/material-design-lite/src/images/tick.svg?embed"); }

.mdl-checkbox__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0; }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
  .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(33,150,243); }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,
  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
  .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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-chip {
  height: 32px;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  line-height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 16px;
  background-color: #dedede;
  display: inline-block;
  color: rgba(0,0,0, 0.87);
  margin: 2px 0;
  font-size: 0;
  white-space: nowrap; }
  .mdl-chip__text {
    font-size: 13px;
    vertical-align: middle;
    display: inline-block; }
  .mdl-chip__action {
    height: 24px;
    width: 24px;
    background: transparent;
    opacity: 0.54;
    display: inline-block;
    cursor: pointer;
    text-align: center;
    vertical-align: middle;
    padding: 0;
    margin: 0 0 0 4px;
    font-size: 13px;
    text-decoration: none;
    color: rgba(0,0,0, 0.87);
    border: none;
    outline: none;
    overflow: hidden; }
  .mdl-chip__contact {
    height: 32px;
    width: 32px;
    border-radius: 16px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
    overflow: hidden;
    text-align: center;
    font-size: 18px;
    line-height: 32px; }
  .mdl-chip:focus {
    outline: 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); }
  .mdl-chip:active {
    background-color: #d6d6d6; }
  .mdl-chip--deletable {
    padding-right: 4px; }
  .mdl-chip--contact {
    padding-left: 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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 12px 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: middle;
    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: middle; }
  .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__header--sorted-ascending, .mdl-data-table th.mdl-data-table__header--sorted-descending {
      color: rgba(0, 0, 0, 0.87); }
      .mdl-data-table th.mdl-data-table__header--sorted-ascending:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
        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;
        word-wrap: normal;
        font-feature-settings: 'liga';
        -webkit-font-feature-settings: 'liga';
        -webkit-font-smoothing: antialiased;
        font-size: 16px;
        content: "\e5d8";
        margin-right: 5px;
        vertical-align: sub; }
      .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover {
        cursor: pointer; }
        .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {
          color: rgba(0, 0, 0, 0.26); }
    .mdl-data-table th.mdl-data-table__header--sorted-descending:before {
      content: "\e5db"; }

.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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-dialog {
  border: none;
  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);
  width: 280px; }
  .mdl-dialog__title {
    padding: 24px 24px 0;
    margin: 0;
    font-size: 2.5rem; }
  .mdl-dialog__actions {
    padding: 8px 8px 8px 24px;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap; }
    .mdl-dialog__actions > * {
      margin-right: 8px;
      height: 36px; }
      .mdl-dialog__actions > *:first-child {
        margin-right: 0; }
    .mdl-dialog__actions--full-width {
      padding: 0 0 8px 0; }
      .mdl-dialog__actions--full-width > * {
        height: 48px;
        -webkit-flex: 0 0 100%;
            -ms-flex: 0 0 100%;
                flex: 0 0 100%;
        padding-right: 16px;
        margin-right: 0;
        text-align: right; }
  .mdl-dialog__content {
    padding: 20px 24px 24px 24px;
    color: rgba(0,0,0, 0.54); }

/**
 * 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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 {
      content: ''; }
  .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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-mini-footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          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: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row nowrap;
      -ms-flex-flow: row nowrap;
          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;
  -webkit-order: 0;
      -ms-flex-order: 0;
          order: 0; }

.mdl-mini-footer--right-section,
.mdl-mini-footer__right-section {
  display: inline-block;
  -webkit-order: 1;
      -ms-flex-order: 1;
          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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.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;
    -ms-appearance: none;
    -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(33,150,243); }
  .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(33,150,243, 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-list {
  display: block;
  padding: 8px 0;
  list-style: none; }

.mdl-list__item {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0.04em;
  line-height: 1;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  min-height: 48px;
  box-sizing: border-box;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 16px;
  cursor: default;
  color: rgba(0,0,0, 0.87);
  overflow: hidden; }
  .mdl-list__item .mdl-list__item-primary-content {
    -webkit-order: 0;
        -ms-flex-order: 0;
            order: 0;
    -webkit-flex-grow: 2;
        -ms-flex-positive: 2;
            flex-grow: 2;
    text-decoration: none;
    box-sizing: border-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {
      margin-right: 32px; }
    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {
      margin-right: 16px; }
  .mdl-list__item .mdl-list__item-secondary-content {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-flow: column;
        -ms-flex-flow: column;
            flex-flow: column;
    -webkit-align-items: flex-end;
        -ms-flex-align: end;
            align-items: flex-end;
    margin-left: 16px; }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {
      display: inline; }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {
      font-size: 12px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: 0;
      color: rgba(0,0,0, 0.54); }
    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {
      padding: 0 0 0 16px; }

.mdl-list__item-icon,
.mdl-list__item-icon.material-icons {
  height: 24px;
  width: 24px;
  font-size: 24px;
  box-sizing: border-box;
  color: rgb(117,117,117); }

.mdl-list__item-avatar,
.mdl-list__item-avatar.material-icons {
  height: 40px;
  width: 40px;
  box-sizing: border-box;
  border-radius: 50%;
  background-color: rgb(117,117,117);
  font-size: 40px;
  color: white; }

.mdl-list__item--two-line {
  height: 72px; }
  .mdl-list__item--two-line .mdl-list__item-primary-content {
    height: 36px;
    line-height: 20px;
    display: block; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {
      float: left; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {
      float: left;
      margin-top: 6px; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {
      height: 36px; }
    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {
      font-size: 14px;
      font-weight: 400;
      line-height: 24px;
      letter-spacing: 0;
      line-height: 18px;
      color: rgba(0,0,0, 0.54);
      display: block;
      padding: 0; }

.mdl-list__item--three-line {
  height: 88px; }
  .mdl-list__item--three-line .mdl-list__item-primary-content {
    height: 52px;
    line-height: 20px;
    display: block; }
    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,
    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {
      float: left; }
  .mdl-list__item--three-line .mdl-list__item-secondary-content {
    height: 52px; }
  .mdl-list__item--three-line .mdl-list__item-text-body {
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: 0;
    line-height: 18px;
    height: 52px;
    color: rgba(0,0,0, 0.54);
    display: block;
    padding: 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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;
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: 0 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: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: -1; }
  .mdl-menu__container.is-visible .mdl-menu__outline {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
    z-index: 999; }
  .mdl-menu__outline.mdl-menu--bottom-right {
    -webkit-transform-origin: 100% 0;
            transform-origin: 100% 0; }
  .mdl-menu__outline.mdl-menu--top-left {
    -webkit-transform-origin: 0 100%;
            transform-origin: 0 100%; }
  .mdl-menu__outline.mdl-menu--top-right {
    -webkit-transform-origin: 100% 100%;
            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;
      -ms-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--full-bleed-divider {
    border-bottom: 1px solid rgba(0,0,0, 0.12); }
  .mdl-menu__item[disabled], .mdl-menu__item[data-mdl-disabled] {
    color: rgb(189,189,189);
    background-color: transparent;
    cursor: auto; }
    .mdl-menu__item[disabled]:hover, .mdl-menu__item[data-mdl-disabled]:hover {
      background-color: transparent; }
    .mdl-menu__item[disabled]:focus, .mdl-menu__item[data-mdl-disabled]:focus {
      background-color: transparent; }
    .mdl-menu__item[disabled] .mdl-ripple, .mdl-menu__item[data-mdl-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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-progress {
  display: block;
  position: relative;
  height: 4px;
  width: 500px;
  max-width: 100%; }

.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(33,150,243);
  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(33,150,243), rgb(33,150,243));
  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,
  .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(33,150,243), rgb(33,150,243));
    -webkit-mask: url("/vendor/material-design-lite/src/images/buffer.svg?embed");
            mask: url("/vendor/material-design-lite/src/images/buffer.svg?embed"); } }

.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,
.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(33,150,243), rgb(33,150,243)); }

.mdl-progress.mdl-progress--indeterminate > .bar1,
.mdl-progress.mdl-progress__indeterminate > .bar1 {
  background-color: rgb(33,150,243);
  -webkit-animation-name: indeterminate1;
          animation-name: indeterminate1;
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear; }

.mdl-progress.mdl-progress--indeterminate > .bar3,
.mdl-progress.mdl-progress__indeterminate > .bar3 {
  background-image: none;
  background-color: rgb(33,150,243);
  -webkit-animation-name: indeterminate2;
          animation-name: indeterminate2;
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear; }

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

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

@-webkit-keyframes indeterminate2 {
  0% {
    left: 0%;
    width: 0%; }
  50% {
    left: 0%;
    width: 0%; }
  75% {
    left: 0%;
    width: 25%; }
  100% {
    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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-navigation {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  box-sizing: border-box; }

.mdl-navigation__link {
  color: rgb(66,66,66);
  text-decoration: none;
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  opacity: 0.87; }
  .mdl-navigation__link .material-icons {
    vertical-align: middle; }

.mdl-layout {
  width: 100%;
  height: 100%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          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 {
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }

.mdl-layout__drawer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          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);
  -webkit-transform: translateX(-250px);
          transform: translateX(-250px);
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  will-change: transform;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  color: rgb(66,66,66);
  overflow: visible;
  overflow-y: auto;
  z-index: 5; }
  .mdl-layout__drawer.is-visible {
    -webkit-transform: translateX(0);
            transform: translateX(0); }
    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {
      overflow: hidden; }
  .mdl-layout__drawer > * {
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            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 {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
                -ms-grid-row-align: stretch;
            align-items: stretch;
    padding-top: 16px; }
    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
      display: block;
      -webkit-flex-shrink: 0;
          -ms-flex-negative: 0;
              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(224,224,224);
        color: rgb(0,0,0); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--fixed-drawer > .mdl-layout__drawer {
      -webkit-transform: translateX(0);
              transform: translateX(0); } }

.mdl-layout__drawer-button {
  display: block;
  position: absolute;
  height: 48px;
  width: 48px;
  border: 0;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  overflow: hidden;
  text-align: center;
  cursor: pointer;
  font-size: 26px;
  line-height: 56px;
  font-family: Helvetica, Arial, sans-serif;
  margin: 8px 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__drawer-button {
      line-height: 54px; }
      .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,
      .mdl-layout--fixed-drawer > .mdl-layout__drawer-button,
      .mdl-layout--no-drawer-button .mdl-layout__drawer-button {
        display: none; } }

.mdl-layout__header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  box-sizing: border-box;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  min-height: 64px;
  max-height: 1000px;
  z-index: 3;
  background-color: rgb(33,150,243);
  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: -webkit-flex;
      display: -ms-flexbox;
      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--waterfall.mdl-layout__header--waterfall-hide-top {
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end; }

.mdl-layout__header-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  box-sizing: border-box;
  -webkit-align-self: stretch;
      -ms-flex-item-align: stretch;
          align-self: stretch;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  height: 64px;
  margin: 0;
  padding: 0 40px 0 80px; }
  .mdl-layout--no-drawer-button .mdl-layout__header-row {
    padding-left: 40px; }
  @media screen and (min-width: 1025px) {
    .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {
      padding-left: 40px; } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__header-row {
      height: 56px;
      padding: 0 16px 0 72px; }
      .mdl-layout--no-drawer-button .mdl-layout__header-row {
        padding-left: 16px; } }
  .mdl-layout__header-row > * {
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            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;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-align-items: center;
        -ms-flex-align: center;
                -ms-grid-row-align: center;
            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; }
  @supports (pointer-events: auto) {
    .mdl-layout__obfuscator {
      background-color: rgba(0, 0, 0, 0.5);
      opacity: 0;
      transition-property: opacity;
      visibility: visible;
      pointer-events: none; }
      .mdl-layout__obfuscator.is-visible {
        pointer-events: auto;
        opacity: 1; } }

.mdl-layout__content {
  -ms-flex: 0 1 auto;
  position: relative;
  display: inline-block;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          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: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  background-color: rgb(33,150,243);
  overflow-y: hidden;
  overflow-x: scroll; }
  .mdl-layout__tab-bar::-webkit-scrollbar {
    display: none; }
  .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
    padding-left: 16px;
    width: calc(100% - 32px); }
  @media screen and (min-width: 1025px) {
    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {
      padding-left: 16px;
      width: calc(100% - 32px); } }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar {
      width: calc(100% - 60px);
      padding: 0 0 0 60px; }
      .mdl-layout--no-drawer-button .mdl-layout__tab-bar {
        width: calc(100% - 8px);
        padding-left: 4px; } }
  .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;
  -webkit-flex-grow: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 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(33,150,243);
  color: transparent;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,
  .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {
    width: 16px; }
    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,
    .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {
      position: relative;
      left: -4px; }
  @media screen and (max-width: 1024px) {
    .mdl-layout__tab-bar-button {
      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;
  -webkit-flex-grow: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 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;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            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(194,24,91);
    -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
            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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-radio {
  position: relative;
  font-size: 16px;
  line-height: 24px;
  display: inline-block;
  vertical-align: middle;
  box-sizing: border-box;
  height: 24px;
  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;
    -ms-appearance: none;
    -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(33,150,243); }
  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
  .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: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transform: scale(0, 0);
          transform: scale(0, 0);
  border-radius: 50%;
  background: rgb(33,150,243); }
  .mdl-radio.is-checked .mdl-radio__inner-circle {
    -webkit-transform: scale(1, 1);
            transform: scale(1, 1); }
  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
  .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; }
  fieldset[disabled] .mdl-radio .mdl-radio__label,
  .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(33,150,243); }
  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container,
  .mdl-radio.is-disabled .mdl-radio__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
  .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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
_:-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;
    -ms-user-select: none;
        user-select: none;
    outline: 0;
    padding: 0;
    color: rgb(33,150,243);
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            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(33,150,243) 16px, rgb(33,150,243) 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(33,150,243);
      border: none;
      transition: 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), -webkit-transform 0.18s 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);
      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), -webkit-transform 0.18s 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(33,150,243);
      border: none; }
    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
      box-shadow: 0 0 0 10px rgba(33,150,243, 0.26); }
    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
      box-shadow: 0 0 0 10px rgba(33,150,243, 0.26); }
    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
      background-image: none;
      background: rgb(33,150,243);
      -webkit-transform: scale(1.5);
              transform: scale(1.5); }
    .mdl-slider.is-upgraded:active::-moz-range-thumb {
      background-image: none;
      background: rgb(33,150,243);
      transform: scale(1.5); }
    .mdl-slider.is-upgraded::-ms-thumb {
      width: 32px;
      height: 32px;
      border: none;
      border-radius: 50%;
      background: rgb(33,150,243);
      transform: scale(0.375);
      transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s 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);
      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.18s cubic-bezier(0.4, 0, 0.2, 1); }
    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
      background: radial-gradient(circle closest-side, rgb(33,150,243) 0%, rgb(33,150,243) 37.5%, rgba(33,150,243, 0.26) 37.5%, rgba(33,150,243, 0.26) 100%);
      transform: scale(1); }
    .mdl-slider.is-upgraded:active::-ms-thumb {
      background: rgb(33,150,243);
      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);
      -webkit-transform: scale(1.5);
              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 {
      -webkit-transform: scale(0.667);
              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;
      -webkit-transform: scale(0.667);
              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: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          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: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  border: 0;
  padding: 0;
  -webkit-transform: translate(0, -1px);
          transform: translate(0, -1px); }

.mdl-slider__background-lower {
  background: rgb(33,150,243);
  -webkit-flex: 0;
      -ms-flex: 0;
          flex: 0;
  position: relative;
  border: 0;
  padding: 0; }

.mdl-slider__background-upper {
  background: rgba(0,0,0, 0.26);
  -webkit-flex: 0;
      -ms-flex: 0;
          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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.mdl-snackbar {
  position: fixed;
  bottom: 0;
  left: 50%;
  cursor: default;
  background-color: #323232;
  z-index: 3;
  display: block;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  will-change: transform;
  -webkit-transform: translate(0, 80px);
          transform: translate(0, 80px);
  transition: -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);
  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);
  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.25s cubic-bezier(0.4, 0, 1, 1);
  pointer-events: none; }
  @media (max-width: 767px) {
    .mdl-snackbar {
      width: 100%;
      left: 0;
      min-height: 48px;
      max-height: 80px; } }
  @media (min-width: 768px) {
    .mdl-snackbar {
      min-width: 288px;
      max-width: 568px;
      border-radius: 2px;
      -webkit-transform: translate(-50%, 80px);
              transform: translate(-50%, 80px); } }
  .mdl-snackbar--active {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0);
    pointer-events: auto;
    transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1);
    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1);
    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1), -webkit-transform 0.25s cubic-bezier(0, 0, 0.2, 1); }
    @media (min-width: 768px) {
      .mdl-snackbar--active {
        -webkit-transform: translate(-50%, 0);
                transform: translate(-50%, 0); } }
  .mdl-snackbar__text {
    padding: 14px 12px 14px 24px;
    vertical-align: middle;
    color: white;
    float: left; }
  .mdl-snackbar__action {
    background: transparent;
    border: none;
    color: rgb(194,24,91);
    float: right;
    text-transform: uppercase;
    padding: 14px 24px 14px 12px;
    font-family: "Roboto", "Helvetica", "Arial", sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    line-height: 1;
    letter-spacing: 0;
    overflow: hidden;
    outline: none;
    opacity: 0;
    pointer-events: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center; }
    .mdl-snackbar__action::-moz-focus-inner {
      border: 0; }
    .mdl-snackbar__action:not([aria-hidden]) {
      opacity: 1;
      pointer-events: auto; }

/**
 * 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.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 {
    -webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
            animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; }

@-webkit-keyframes mdl-spinner__container-rotate {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

@keyframes mdl-spinner__container-rotate {
  to {
    -webkit-transform: rotate(360deg);
            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(33,150,243); }
  .mdl-spinner.is-active .mdl-spinner__layer-1 {
    -webkit-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;
            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(33,150,243); }
  .mdl-spinner.is-active .mdl-spinner__layer-2 {
    -webkit-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;
            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(33,150,243); }
  .mdl-spinner.is-active .mdl-spinner__layer-3 {
    -webkit-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;
            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(33,150,243); }
  .mdl-spinner.is-active .mdl-spinner__layer-4 {
    -webkit-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;
            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; }

@-webkit-keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  25% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); }
  37.5% {
    -webkit-transform: rotate(405deg);
            transform: rotate(405deg); }
  50% {
    -webkit-transform: rotate(540deg);
            transform: rotate(540deg); }
  62.5% {
    -webkit-transform: rotate(675deg);
            transform: rotate(675deg); }
  75% {
    -webkit-transform: rotate(810deg);
            transform: rotate(810deg); }
  87.5% {
    -webkit-transform: rotate(945deg);
            transform: rotate(945deg); }
  to {
    -webkit-transform: rotate(1080deg);
            transform: rotate(1080deg); } }

@keyframes mdl-spinner__fill-unfill-rotate {
  12.5% {
    -webkit-transform: rotate(135deg);
            transform: rotate(135deg); }
  25% {
    -webkit-transform: rotate(270deg);
            transform: rotate(270deg); }
  37.5% {
    -webkit-transform: rotate(405deg);
            transform: rotate(405deg); }
  50% {
    -webkit-transform: rotate(540deg);
            transform: rotate(540deg); }
  62.5% {
    -webkit-transform: rotate(675deg);
            transform: rotate(675deg); }
  75% {
    -webkit-transform: rotate(810deg);
            transform: rotate(810deg); }
  87.5% {
    -webkit-transform: rotate(945deg);
            transform: rotate(945deg); }
  to {
    -webkit-transform: rotate(1080deg);
            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
*/
@-webkit-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-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; } }

@-webkit-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-2-fade-in-out {
  from {
    opacity: 0; }
  15% {
    opacity: 0; }
  25% {
    opacity: 0.99; }
  50% {
    opacity: 0.99; }
  51% {
    opacity: 0; } }

@-webkit-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-3-fade-in-out {
  from {
    opacity: 0; }
  40% {
    opacity: 0; }
  50% {
    opacity: 0.99; }
  75% {
    opacity: 0.99; }
  76% {
    opacity: 0; } }

@-webkit-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; } }

@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__left {
    float: left; }
  .mdl-spinner__circle-clipper.mdl-spinner__right {
    float: right; }
  .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%;
  -webkit-animation: none;
          animation: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }
  .mdl-spinner__left .mdl-spinner__circle {
    border-right-color: transparent !important;
    -webkit-transform: rotate(129deg);
            transform: rotate(129deg); }
    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {
      -webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
              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;
    -webkit-transform: rotate(-129deg);
            transform: rotate(-129deg); }
    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {
      -webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
              animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }

@-webkit-keyframes mdl-spinner__left-spin {
  from {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg); }
  50% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg); }
  to {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg); } }

@keyframes mdl-spinner__left-spin {
  from {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg); }
  50% {
    -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg); }
  to {
    -webkit-transform: rotate(130deg);
            transform: rotate(130deg); } }

@-webkit-keyframes mdl-spinner__right-spin {
  from {
    -webkit-transform: rotate(-130deg);
            transform: rotate(-130deg); }
  50% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); }
  to {
    -webkit-transform: rotate(-130deg);
            transform: rotate(-130deg); } }

@keyframes mdl-spinner__right-spin {
  from {
    -webkit-transform: rotate(-130deg);
            transform: rotate(-130deg); }
  50% {
    -webkit-transform: rotate(5deg);
            transform: rotate(5deg); }
  to {
    -webkit-transform: rotate(-130deg);
            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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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;
  -ms-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;
    -ms-appearance: none;
    -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(33,150,243, 0.5); }
  .mdl-switch__track fieldset[disabled] .mdl-switch,
  .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(33,150,243);
    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__thumb fieldset[disabled] .mdl-switch,
  .mdl-switch.is-disabled .mdl-switch__thumb {
    background: rgb(189,189,189);
    cursor: auto; }

.mdl-switch__focus-helper {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-4px, -4px);
          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(33,150,243, 0.26);
    background-color: rgba(33,150,243, 0.26); }

.mdl-switch__label {
  position: relative;
  cursor: pointer;
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  left: 24px; }
  .mdl-switch__label fieldset[disabled] .mdl-switch,
  .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(33,150,243); }
  .mdl-switch__ripple-container fieldset[disabled] .mdl-switch,
  .mdl-switch.is-disabled .mdl-switch__ripple-container {
    cursor: auto; }
  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
    background: transparent; }
  .mdl-switch.is-checked .mdl-switch__ripple-container {
    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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-tabs {
  display: block;
  width: 100%; }

.mdl-tabs__tab-bar {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-align-content: space-between;
      -ms-flex-line-pack: justify;
          align-content: space-between;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          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;
  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(33,150,243);
    -webkit-animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
            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(33,150,243); }

.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; }

@-webkit-keyframes border-expand {
  0% {
    opacity: 0;
    width: 0; }
  100% {
    opacity: 1;
    width: 100%; } }

@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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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--expandable .mdl-button--icon {
    top: 16px; }

.mdl-textfield__input {
  border: none;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
  display: block;
  font-size: 16px;
  font-family: "Helvetica", "Arial", sans-serif;
  margin: 0;
  padding: 4px 0;
  width: 100%;
  background: none;
  text-align: left;
  color: inherit; }
  .mdl-textfield__input[type="number"] {
    -moz-appearance: textfield; }
  .mdl-textfield__input[type="number"]::-webkit-inner-spin-button, .mdl-textfield__input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0; }
  .mdl-textfield.is-focused .mdl-textfield__input {
    outline: none; }
  .mdl-textfield.is-invalid .mdl-textfield__input {
    border-color: rgb(213,0,0);
    box-shadow: none; }
  fieldset[disabled] .mdl-textfield .mdl-textfield__input,
  .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,
  .mdl-textfield.has-placeholder .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--floating-label.has-placeholder .mdl-textfield__label {
    transition: none; }
  fieldset[disabled] .mdl-textfield .mdl-textfield__label,
  .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,
  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
    color: rgb(33,150,243);
    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,
  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {
    top: -16px; }
  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
    color: rgb(213,0,0);
    font-size: 12px; }
  .mdl-textfield__label:after {
    background-color: rgb(33,150,243);
    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(213,0,0); }

.mdl-textfield__error {
  color: rgb(213,0,0);
  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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-tooltip {
  -webkit-transform: scale(0);
          transform: scale(0);
  -webkit-transform-origin: top center;
          transform-origin: top center;
  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 {
  -webkit-animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards;
          animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }

.mdl-tooltip--large {
  line-height: 14px;
  font-size: 14px;
  padding: 16px; }

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  50% {
    -webkit-transform: scale(0.99);
            transform: scale(0.99); }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
    visibility: visible; } }

@keyframes pulse {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 0; }
  50% {
    -webkit-transform: scale(0.99);
            transform: scale(0.99); }
  100% {
    -webkit-transform: scale(1);
            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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
/**
 * 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 */
/* Dialog */
.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); }

.mdl-shadow--24dp {
  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px 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
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */
/* ==========  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 */
/* DIALOG */
/* SNACKBAR */
/* TOOLTIP */
/* CHIP */
.mdl-grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row wrap;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  margin: 0 auto 0 auto;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  .mdl-grid.mdl-grid--no-spacing {
    padding: 0; }

.mdl-cell {
  box-sizing: border-box; }

.mdl-cell--top {
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start; }

.mdl-cell--middle {
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center; }

.mdl-cell--bottom {
  -webkit-align-self: flex-end;
      -ms-flex-item-align: end;
          align-self: flex-end; }

.mdl-cell--stretch {
  -webkit-align-self: stretch;
      -ms-flex-item-align: stretch;
          align-self: stretch; }

.mdl-grid.mdl-grid--no-spacing > .mdl-cell {
  margin: 0; }

.mdl-cell--order-1 {
  -webkit-order: 1;
      -ms-flex-order: 1;
          order: 1; }

.mdl-cell--order-2 {
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2; }

.mdl-cell--order-3 {
  -webkit-order: 3;
      -ms-flex-order: 3;
          order: 3; }

.mdl-cell--order-4 {
  -webkit-order: 4;
      -ms-flex-order: 4;
          order: 4; }

.mdl-cell--order-5 {
  -webkit-order: 5;
      -ms-flex-order: 5;
          order: 5; }

.mdl-cell--order-6 {
  -webkit-order: 6;
      -ms-flex-order: 6;
          order: 6; }

.mdl-cell--order-7 {
  -webkit-order: 7;
      -ms-flex-order: 7;
          order: 7; }

.mdl-cell--order-8 {
  -webkit-order: 8;
      -ms-flex-order: 8;
          order: 8; }

.mdl-cell--order-9 {
  -webkit-order: 9;
      -ms-flex-order: 9;
          order: 9; }

.mdl-cell--order-10 {
  -webkit-order: 10;
      -ms-flex-order: 10;
          order: 10; }

.mdl-cell--order-11 {
  -webkit-order: 11;
      -ms-flex-order: 11;
          order: 11; }

.mdl-cell--order-12 {
  -webkit-order: 12;
      -ms-flex-order: 12;
          order: 12; }

@media (max-width: 767px) {
  .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--order-1-phone.mdl-cell--order-1-phone {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .mdl-cell--order-2-phone.mdl-cell--order-2-phone {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .mdl-cell--order-3-phone.mdl-cell--order-3-phone {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .mdl-cell--order-4-phone.mdl-cell--order-4-phone {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .mdl-cell--order-5-phone.mdl-cell--order-5-phone {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .mdl-cell--order-6-phone.mdl-cell--order-6-phone {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; }
  .mdl-cell--order-7-phone.mdl-cell--order-7-phone {
    -webkit-order: 7;
        -ms-flex-order: 7;
            order: 7; }
  .mdl-cell--order-8-phone.mdl-cell--order-8-phone {
    -webkit-order: 8;
        -ms-flex-order: 8;
            order: 8; }
  .mdl-cell--order-9-phone.mdl-cell--order-9-phone {
    -webkit-order: 9;
        -ms-flex-order: 9;
            order: 9; }
  .mdl-cell--order-10-phone.mdl-cell--order-10-phone {
    -webkit-order: 10;
        -ms-flex-order: 10;
            order: 10; }
  .mdl-cell--order-11-phone.mdl-cell--order-11-phone {
    -webkit-order: 11;
        -ms-flex-order: 11;
            order: 11; }
  .mdl-cell--order-12-phone.mdl-cell--order-12-phone {
    -webkit-order: 12;
        -ms-flex-order: 12;
            order: 12; }
  .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%; }
  .mdl-cell--1-offset,
  .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
    margin-left: calc(25% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {
      margin-left: 25%; }
  .mdl-cell--2-offset,
  .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
    margin-left: calc(50% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {
      margin-left: 50%; }
  .mdl-cell--3-offset,
  .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
    margin-left: calc(75% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {
      margin-left: 75%; } }

@media (min-width: 768px) and (max-width: 767px) {
  .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--order-1-tablet.mdl-cell--order-1-tablet {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; }
  .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {
    -webkit-order: 7;
        -ms-flex-order: 7;
            order: 7; }
  .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {
    -webkit-order: 8;
        -ms-flex-order: 8;
            order: 8; }
  .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {
    -webkit-order: 9;
        -ms-flex-order: 9;
            order: 9; }
  .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {
    -webkit-order: 10;
        -ms-flex-order: 10;
            order: 10; }
  .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {
    -webkit-order: 11;
        -ms-flex-order: 11;
            order: 11; }
  .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {
    -webkit-order: 12;
        -ms-flex-order: 12;
            order: 12; }
  .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%; }
  .mdl-cell--1-offset,
  .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
    margin-left: calc(12.5% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {
      margin-left: 12.5%; }
  .mdl-cell--2-offset,
  .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
    margin-left: calc(25% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {
      margin-left: 25%; }
  .mdl-cell--3-offset,
  .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
    margin-left: calc(37.5% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {
      margin-left: 37.5%; }
  .mdl-cell--4-offset,
  .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
    margin-left: calc(50% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {
      margin-left: 50%; }
  .mdl-cell--5-offset,
  .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
    margin-left: calc(62.5% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {
      margin-left: 62.5%; }
  .mdl-cell--6-offset,
  .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
    margin-left: calc(75% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {
      margin-left: 75%; }
  .mdl-cell--7-offset,
  .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
    margin-left: calc(87.5% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {
      margin-left: 87.5%; } }

@media (min-width: 768px) {
  .mdl-grid {
    padding: 8px; }
  .mdl-cell {
    margin: 8px;
    width: calc(33.3333333333% - 16px); }
    .mdl-grid--no-spacing > .mdl-cell {
      width: 33.3333333333%; }
  .mdl-cell--hide-desktop {
    display: none !important; }
  .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1; }
  .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2; }
  .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3; }
  .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4; }
  .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5; }
  .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {
    -webkit-order: 6;
        -ms-flex-order: 6;
            order: 6; }
  .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {
    -webkit-order: 7;
        -ms-flex-order: 7;
            order: 7; }
  .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {
    -webkit-order: 8;
        -ms-flex-order: 8;
            order: 8; }
  .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {
    -webkit-order: 9;
        -ms-flex-order: 9;
            order: 9; }
  .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {
    -webkit-order: 10;
        -ms-flex-order: 10;
            order: 10; }
  .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {
    -webkit-order: 11;
        -ms-flex-order: 11;
            order: 11; }
  .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {
    -webkit-order: 12;
        -ms-flex-order: 12;
            order: 12; }
  .mdl-cell--1-col,
  .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {
    width: calc(8.3333333333% - 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.3333333333%; }
  .mdl-cell--2-col,
  .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {
    width: calc(16.6666666667% - 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.6666666667%; }
  .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.3333333333% - 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.3333333333%; }
  .mdl-cell--5-col,
  .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {
    width: calc(41.6666666667% - 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.6666666667%; }
  .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.3333333333% - 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.3333333333%; }
  .mdl-cell--8-col,
  .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {
    width: calc(66.6666666667% - 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.6666666667%; }
  .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.3333333333% - 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.3333333333%; }
  .mdl-cell--11-col,
  .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {
    width: calc(91.6666666667% - 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.6666666667%; }
  .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%; }
  .mdl-cell--1-offset,
  .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
    margin-left: calc(8.3333333333% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {
      margin-left: 8.3333333333%; }
  .mdl-cell--2-offset,
  .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
    margin-left: calc(16.6666666667% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {
      margin-left: 16.6666666667%; }
  .mdl-cell--3-offset,
  .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
    margin-left: calc(25% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {
      margin-left: 25%; }
  .mdl-cell--4-offset,
  .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
    margin-left: calc(33.3333333333% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {
      margin-left: 33.3333333333%; }
  .mdl-cell--5-offset,
  .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
    margin-left: calc(41.6666666667% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {
      margin-left: 41.6666666667%; }
  .mdl-cell--6-offset,
  .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
    margin-left: calc(50% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {
      margin-left: 50%; }
  .mdl-cell--7-offset,
  .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
    margin-left: calc(58.3333333333% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {
      margin-left: 58.3333333333%; }
  .mdl-cell--8-offset,
  .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
    margin-left: calc(66.6666666667% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {
      margin-left: 66.6666666667%; }
  .mdl-cell--9-offset,
  .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
    margin-left: calc(75% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {
      margin-left: 75%; }
  .mdl-cell--10-offset,
  .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
    margin-left: calc(83.3333333333% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {
      margin-left: 83.3333333333%; }
  .mdl-cell--11-offset,
  .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
    margin-left: calc(91.6666666667% + 8px); }
    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset, .mdl-grid.mdl-grid--no-spacing >
    .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {
      margin-left: 91.6666666667%; } }

/* MaterialDesignIcons.com */
@font-face {
  font-family: "Material Design Icons";
  src: url("../assets/fonts/materialdesignicons-webfont.eot?v=2.1.19");
  src: url("../assets/fonts/materialdesignicons-webfont.eot?#iefix&v=2.1.19") format("embedded-opentype"), url("../assets/fonts/materialdesignicons-webfont.woff2?v=2.1.19") format("woff2"), url("../assets/fonts/materialdesignicons-webfont.woff?v=2.1.19") format("woff"), url("../assets/fonts/materialdesignicons-webfont.ttf?v=2.1.19") format("truetype"), url("../assets/fonts/materialdesignicons-webfont.svg?v=2.1.19#materialdesigniconsregular") format("svg");
  font-weight: normal;
  font-style: normal; }

.mdi:before,
.mdi-set {
  display: inline-block;
  font: normal normal normal 24px/1 "Material Design Icons";
  font-size: inherit;
  text-rendering: auto;
  line-height: inherit;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.mdi-access-point:before {
  content: "\F002"; }

.mdi-access-point-network:before {
  content: "\F003"; }

.mdi-account:before {
  content: "\F004"; }

.mdi-account-alert:before {
  content: "\F005"; }

.mdi-account-box:before {
  content: "\F006"; }

.mdi-account-box-outline:before {
  content: "\F007"; }

.mdi-account-card-details:before {
  content: "\F5D2"; }

.mdi-account-check:before {
  content: "\F008"; }

.mdi-account-circle:before {
  content: "\F009"; }

.mdi-account-convert:before {
  content: "\F00A"; }

.mdi-account-edit:before {
  content: "\F6BB"; }

.mdi-account-key:before {
  content: "\F00B"; }

.mdi-account-location:before {
  content: "\F00C"; }

.mdi-account-minus:before {
  content: "\F00D"; }

.mdi-account-multiple:before {
  content: "\F00E"; }

.mdi-account-multiple-minus:before {
  content: "\F5D3"; }

.mdi-account-multiple-outline:before {
  content: "\F00F"; }

.mdi-account-multiple-plus:before {
  content: "\F010"; }

.mdi-account-multiple-plus-outline:before {
  content: "\F7FF"; }

.mdi-account-network:before {
  content: "\F011"; }

.mdi-account-off:before {
  content: "\F012"; }

.mdi-account-outline:before {
  content: "\F013"; }

.mdi-account-plus:before {
  content: "\F014"; }

.mdi-account-plus-outline:before {
  content: "\F800"; }

.mdi-account-remove:before {
  content: "\F015"; }

.mdi-account-search:before {
  content: "\F016"; }

.mdi-account-settings:before {
  content: "\F630"; }

.mdi-account-settings-variant:before {
  content: "\F631"; }

.mdi-account-star:before {
  content: "\F017"; }

.mdi-account-switch:before {
  content: "\F019"; }

.mdi-adjust:before {
  content: "\F01A"; }

.mdi-air-conditioner:before {
  content: "\F01B"; }

.mdi-airballoon:before {
  content: "\F01C"; }

.mdi-airplane:before {
  content: "\F01D"; }

.mdi-airplane-landing:before {
  content: "\F5D4"; }

.mdi-airplane-off:before {
  content: "\F01E"; }

.mdi-airplane-takeoff:before {
  content: "\F5D5"; }

.mdi-airplay:before {
  content: "\F01F"; }

.mdi-alarm:before {
  content: "\F020"; }

.mdi-alarm-bell:before {
  content: "\F78D"; }

.mdi-alarm-check:before {
  content: "\F021"; }

.mdi-alarm-light:before {
  content: "\F78E"; }

.mdi-alarm-multiple:before {
  content: "\F022"; }

.mdi-alarm-off:before {
  content: "\F023"; }

.mdi-alarm-plus:before {
  content: "\F024"; }

.mdi-alarm-snooze:before {
  content: "\F68D"; }

.mdi-album:before {
  content: "\F025"; }

.mdi-alert:before {
  content: "\F026"; }

.mdi-alert-box:before {
  content: "\F027"; }

.mdi-alert-circle:before {
  content: "\F028"; }

.mdi-alert-circle-outline:before {
  content: "\F5D6"; }

.mdi-alert-decagram:before {
  content: "\F6BC"; }

.mdi-alert-octagon:before {
  content: "\F029"; }

.mdi-alert-octagram:before {
  content: "\F766"; }

.mdi-alert-outline:before {
  content: "\F02A"; }

.mdi-all-inclusive:before {
  content: "\F6BD"; }

.mdi-allo:before {
  content: "\F801"; }

.mdi-alpha:before {
  content: "\F02B"; }

.mdi-alphabetical:before {
  content: "\F02C"; }

.mdi-altimeter:before {
  content: "\F5D7"; }

.mdi-amazon:before {
  content: "\F02D"; }

.mdi-amazon-clouddrive:before {
  content: "\F02E"; }

.mdi-ambulance:before {
  content: "\F02F"; }

.mdi-amplifier:before {
  content: "\F030"; }

.mdi-anchor:before {
  content: "\F031"; }

.mdi-android:before {
  content: "\F032"; }

.mdi-android-debug-bridge:before {
  content: "\F033"; }

.mdi-android-head:before {
  content: "\F78F"; }

.mdi-android-studio:before {
  content: "\F034"; }

.mdi-angular:before {
  content: "\F6B1"; }

.mdi-angularjs:before {
  content: "\F6BE"; }

.mdi-animation:before {
  content: "\F5D8"; }

.mdi-apple:before {
  content: "\F035"; }

.mdi-apple-finder:before {
  content: "\F036"; }

.mdi-apple-ios:before {
  content: "\F037"; }

.mdi-apple-keyboard-caps:before {
  content: "\F632"; }

.mdi-apple-keyboard-command:before {
  content: "\F633"; }

.mdi-apple-keyboard-control:before {
  content: "\F634"; }

.mdi-apple-keyboard-option:before {
  content: "\F635"; }

.mdi-apple-keyboard-shift:before {
  content: "\F636"; }

.mdi-apple-mobileme:before {
  content: "\F038"; }

.mdi-apple-safari:before {
  content: "\F039"; }

.mdi-application:before {
  content: "\F614"; }

.mdi-approval:before {
  content: "\F790"; }

.mdi-apps:before {
  content: "\F03B"; }

.mdi-archive:before {
  content: "\F03C"; }

.mdi-arrange-bring-forward:before {
  content: "\F03D"; }

.mdi-arrange-bring-to-front:before {
  content: "\F03E"; }

.mdi-arrange-send-backward:before {
  content: "\F03F"; }

.mdi-arrange-send-to-back:before {
  content: "\F040"; }

.mdi-arrow-all:before {
  content: "\F041"; }

.mdi-arrow-bottom-left:before {
  content: "\F042"; }

.mdi-arrow-bottom-right:before {
  content: "\F043"; }

.mdi-arrow-collapse:before {
  content: "\F615"; }

.mdi-arrow-collapse-all:before {
  content: "\F044"; }

.mdi-arrow-collapse-down:before {
  content: "\F791"; }

.mdi-arrow-collapse-left:before {
  content: "\F792"; }

.mdi-arrow-collapse-right:before {
  content: "\F793"; }

.mdi-arrow-collapse-up:before {
  content: "\F794"; }

.mdi-arrow-down:before {
  content: "\F045"; }

.mdi-arrow-down-bold:before {
  content: "\F72D"; }

.mdi-arrow-down-bold-box:before {
  content: "\F72E"; }

.mdi-arrow-down-bold-box-outline:before {
  content: "\F72F"; }

.mdi-arrow-down-bold-circle:before {
  content: "\F047"; }

.mdi-arrow-down-bold-circle-outline:before {
  content: "\F048"; }

.mdi-arrow-down-bold-hexagon-outline:before {
  content: "\F049"; }

.mdi-arrow-down-box:before {
  content: "\F6BF"; }

.mdi-arrow-down-drop-circle:before {
  content: "\F04A"; }

.mdi-arrow-down-drop-circle-outline:before {
  content: "\F04B"; }

.mdi-arrow-down-thick:before {
  content: "\F046"; }

.mdi-arrow-expand:before {
  content: "\F616"; }

.mdi-arrow-expand-all:before {
  content: "\F04C"; }

.mdi-arrow-expand-down:before {
  content: "\F795"; }

.mdi-arrow-expand-left:before {
  content: "\F796"; }

.mdi-arrow-expand-right:before {
  content: "\F797"; }

.mdi-arrow-expand-up:before {
  content: "\F798"; }

.mdi-arrow-left:before {
  content: "\F04D"; }

.mdi-arrow-left-bold:before {
  content: "\F730"; }

.mdi-arrow-left-bold-box:before {
  content: "\F731"; }

.mdi-arrow-left-bold-box-outline:before {
  content: "\F732"; }

.mdi-arrow-left-bold-circle:before {
  content: "\F04F"; }

.mdi-arrow-left-bold-circle-outline:before {
  content: "\F050"; }

.mdi-arrow-left-bold-hexagon-outline:before {
  content: "\F051"; }

.mdi-arrow-left-box:before {
  content: "\F6C0"; }

.mdi-arrow-left-drop-circle:before {
  content: "\F052"; }

.mdi-arrow-left-drop-circle-outline:before {
  content: "\F053"; }

.mdi-arrow-left-thick:before {
  content: "\F04E"; }

.mdi-arrow-right:before {
  content: "\F054"; }

.mdi-arrow-right-bold:before {
  content: "\F733"; }

.mdi-arrow-right-bold-box:before {
  content: "\F734"; }

.mdi-arrow-right-bold-box-outline:before {
  content: "\F735"; }

.mdi-arrow-right-bold-circle:before {
  content: "\F056"; }

.mdi-arrow-right-bold-circle-outline:before {
  content: "\F057"; }

.mdi-arrow-right-bold-hexagon-outline:before {
  content: "\F058"; }

.mdi-arrow-right-box:before {
  content: "\F6C1"; }

.mdi-arrow-right-drop-circle:before {
  content: "\F059"; }

.mdi-arrow-right-drop-circle-outline:before {
  content: "\F05A"; }

.mdi-arrow-right-thick:before {
  content: "\F055"; }

.mdi-arrow-top-left:before {
  content: "\F05B"; }

.mdi-arrow-top-right:before {
  content: "\F05C"; }

.mdi-arrow-up:before {
  content: "\F05D"; }

.mdi-arrow-up-bold:before {
  content: "\F736"; }

.mdi-arrow-up-bold-box:before {
  content: "\F737"; }

.mdi-arrow-up-bold-box-outline:before {
  content: "\F738"; }

.mdi-arrow-up-bold-circle:before {
  content: "\F05F"; }

.mdi-arrow-up-bold-circle-outline:before {
  content: "\F060"; }

.mdi-arrow-up-bold-hexagon-outline:before {
  content: "\F061"; }

.mdi-arrow-up-box:before {
  content: "\F6C2"; }

.mdi-arrow-up-drop-circle:before {
  content: "\F062"; }

.mdi-arrow-up-drop-circle-outline:before {
  content: "\F063"; }

.mdi-arrow-up-thick:before {
  content: "\F05E"; }

.mdi-artist:before {
  content: "\F802"; }

.mdi-assistant:before {
  content: "\F064"; }

.mdi-asterisk:before {
  content: "\F6C3"; }

.mdi-at:before {
  content: "\F065"; }

.mdi-atlassian:before {
  content: "\F803"; }

.mdi-atom:before {
  content: "\F767"; }

.mdi-attachment:before {
  content: "\F066"; }

.mdi-audiobook:before {
  content: "\F067"; }

.mdi-auto-fix:before {
  content: "\F068"; }

.mdi-auto-upload:before {
  content: "\F069"; }

.mdi-autorenew:before {
  content: "\F06A"; }

.mdi-av-timer:before {
  content: "\F06B"; }

.mdi-azure:before {
  content: "\F804"; }

.mdi-baby:before {
  content: "\F06C"; }

.mdi-baby-buggy:before {
  content: "\F68E"; }

.mdi-backburger:before {
  content: "\F06D"; }

.mdi-backspace:before {
  content: "\F06E"; }

.mdi-backup-restore:before {
  content: "\F06F"; }

.mdi-bandcamp:before {
  content: "\F674"; }

.mdi-bank:before {
  content: "\F070"; }

.mdi-barcode:before {
  content: "\F071"; }

.mdi-barcode-scan:before {
  content: "\F072"; }

.mdi-barley:before {
  content: "\F073"; }

.mdi-barrel:before {
  content: "\F074"; }

.mdi-basecamp:before {
  content: "\F075"; }

.mdi-basket:before {
  content: "\F076"; }

.mdi-basket-fill:before {
  content: "\F077"; }

.mdi-basket-unfill:before {
  content: "\F078"; }

.mdi-basketball:before {
  content: "\F805"; }

.mdi-battery:before {
  content: "\F079"; }

.mdi-battery-10:before {
  content: "\F07A"; }

.mdi-battery-20:before {
  content: "\F07B"; }

.mdi-battery-30:before {
  content: "\F07C"; }

.mdi-battery-40:before {
  content: "\F07D"; }

.mdi-battery-50:before {
  content: "\F07E"; }

.mdi-battery-60:before {
  content: "\F07F"; }

.mdi-battery-70:before {
  content: "\F080"; }

.mdi-battery-80:before {
  content: "\F081"; }

.mdi-battery-90:before {
  content: "\F082"; }

.mdi-battery-alert:before {
  content: "\F083"; }

.mdi-battery-charging:before {
  content: "\F084"; }

.mdi-battery-charging-100:before {
  content: "\F085"; }

.mdi-battery-charging-20:before {
  content: "\F086"; }

.mdi-battery-charging-30:before {
  content: "\F087"; }

.mdi-battery-charging-40:before {
  content: "\F088"; }

.mdi-battery-charging-60:before {
  content: "\F089"; }

.mdi-battery-charging-80:before {
  content: "\F08A"; }

.mdi-battery-charging-90:before {
  content: "\F08B"; }

.mdi-battery-charging-wireless:before {
  content: "\F806"; }

.mdi-battery-charging-wireless-10:before {
  content: "\F807"; }

.mdi-battery-charging-wireless-20:before {
  content: "\F808"; }

.mdi-battery-charging-wireless-30:before {
  content: "\F809"; }

.mdi-battery-charging-wireless-40:before {
  content: "\F80A"; }

.mdi-battery-charging-wireless-50:before {
  content: "\F80B"; }

.mdi-battery-charging-wireless-60:before {
  content: "\F80C"; }

.mdi-battery-charging-wireless-70:before {
  content: "\F80D"; }

.mdi-battery-charging-wireless-80:before {
  content: "\F80E"; }

.mdi-battery-charging-wireless-90:before {
  content: "\F80F"; }

.mdi-battery-charging-wireless-alert:before {
  content: "\F810"; }

.mdi-battery-charging-wireless-outline:before {
  content: "\F811"; }

.mdi-battery-minus:before {
  content: "\F08C"; }

.mdi-battery-negative:before {
  content: "\F08D"; }

.mdi-battery-outline:before {
  content: "\F08E"; }

.mdi-battery-plus:before {
  content: "\F08F"; }

.mdi-battery-positive:before {
  content: "\F090"; }

.mdi-battery-unknown:before {
  content: "\F091"; }

.mdi-beach:before {
  content: "\F092"; }

.mdi-beaker:before {
  content: "\F68F"; }

.mdi-beats:before {
  content: "\F097"; }

.mdi-beer:before {
  content: "\F098"; }

.mdi-behance:before {
  content: "\F099"; }

.mdi-bell:before {
  content: "\F09A"; }

.mdi-bell-off:before {
  content: "\F09B"; }

.mdi-bell-outline:before {
  content: "\F09C"; }

.mdi-bell-plus:before {
  content: "\F09D"; }

.mdi-bell-ring:before {
  content: "\F09E"; }

.mdi-bell-ring-outline:before {
  content: "\F09F"; }

.mdi-bell-sleep:before {
  content: "\F0A0"; }

.mdi-beta:before {
  content: "\F0A1"; }

.mdi-bible:before {
  content: "\F0A2"; }

.mdi-bike:before {
  content: "\F0A3"; }

.mdi-bing:before {
  content: "\F0A4"; }

.mdi-binoculars:before {
  content: "\F0A5"; }

.mdi-bio:before {
  content: "\F0A6"; }

.mdi-biohazard:before {
  content: "\F0A7"; }

.mdi-bitbucket:before {
  content: "\F0A8"; }

.mdi-bitcoin:before {
  content: "\F812"; }

.mdi-black-mesa:before {
  content: "\F0A9"; }

.mdi-blackberry:before {
  content: "\F0AA"; }

.mdi-blender:before {
  content: "\F0AB"; }

.mdi-blinds:before {
  content: "\F0AC"; }

.mdi-block-helper:before {
  content: "\F0AD"; }

.mdi-blogger:before {
  content: "\F0AE"; }

.mdi-bluetooth:before {
  content: "\F0AF"; }

.mdi-bluetooth-audio:before {
  content: "\F0B0"; }

.mdi-bluetooth-connect:before {
  content: "\F0B1"; }

.mdi-bluetooth-off:before {
  content: "\F0B2"; }

.mdi-bluetooth-settings:before {
  content: "\F0B3"; }

.mdi-bluetooth-transfer:before {
  content: "\F0B4"; }

.mdi-blur:before {
  content: "\F0B5"; }

.mdi-blur-linear:before {
  content: "\F0B6"; }

.mdi-blur-off:before {
  content: "\F0B7"; }

.mdi-blur-radial:before {
  content: "\F0B8"; }

.mdi-bomb:before {
  content: "\F690"; }

.mdi-bomb-off:before {
  content: "\F6C4"; }

.mdi-bone:before {
  content: "\F0B9"; }

.mdi-book:before {
  content: "\F0BA"; }

.mdi-book-minus:before {
  content: "\F5D9"; }

.mdi-book-multiple:before {
  content: "\F0BB"; }

.mdi-book-multiple-variant:before {
  content: "\F0BC"; }

.mdi-book-open:before {
  content: "\F0BD"; }

.mdi-book-open-page-variant:before {
  content: "\F5DA"; }

.mdi-book-open-variant:before {
  content: "\F0BE"; }

.mdi-book-plus:before {
  content: "\F5DB"; }

.mdi-book-secure:before {
  content: "\F799"; }

.mdi-book-unsecure:before {
  content: "\F79A"; }

.mdi-book-variant:before {
  content: "\F0BF"; }

.mdi-bookmark:before {
  content: "\F0C0"; }

.mdi-bookmark-check:before {
  content: "\F0C1"; }

.mdi-bookmark-music:before {
  content: "\F0C2"; }

.mdi-bookmark-outline:before {
  content: "\F0C3"; }

.mdi-bookmark-plus:before {
  content: "\F0C5"; }

.mdi-bookmark-plus-outline:before {
  content: "\F0C4"; }

.mdi-bookmark-remove:before {
  content: "\F0C6"; }

.mdi-boombox:before {
  content: "\F5DC"; }

.mdi-bootstrap:before {
  content: "\F6C5"; }

.mdi-border-all:before {
  content: "\F0C7"; }

.mdi-border-bottom:before {
  content: "\F0C8"; }

.mdi-border-color:before {
  content: "\F0C9"; }

.mdi-border-horizontal:before {
  content: "\F0CA"; }

.mdi-border-inside:before {
  content: "\F0CB"; }

.mdi-border-left:before {
  content: "\F0CC"; }

.mdi-border-none:before {
  content: "\F0CD"; }

.mdi-border-outside:before {
  content: "\F0CE"; }

.mdi-border-right:before {
  content: "\F0CF"; }

.mdi-border-style:before {
  content: "\F0D0"; }

.mdi-border-top:before {
  content: "\F0D1"; }

.mdi-border-vertical:before {
  content: "\F0D2"; }

.mdi-bow-tie:before {
  content: "\F677"; }

.mdi-bowl:before {
  content: "\F617"; }

.mdi-bowling:before {
  content: "\F0D3"; }

.mdi-box:before {
  content: "\F0D4"; }

.mdi-box-cutter:before {
  content: "\F0D5"; }

.mdi-box-shadow:before {
  content: "\F637"; }

.mdi-bridge:before {
  content: "\F618"; }

.mdi-briefcase:before {
  content: "\F0D6"; }

.mdi-briefcase-check:before {
  content: "\F0D7"; }

.mdi-briefcase-download:before {
  content: "\F0D8"; }

.mdi-briefcase-outline:before {
  content: "\F813"; }

.mdi-briefcase-upload:before {
  content: "\F0D9"; }

.mdi-brightness-1:before {
  content: "\F0DA"; }

.mdi-brightness-2:before {
  content: "\F0DB"; }

.mdi-brightness-3:before {
  content: "\F0DC"; }

.mdi-brightness-4:before {
  content: "\F0DD"; }

.mdi-brightness-5:before {
  content: "\F0DE"; }

.mdi-brightness-6:before {
  content: "\F0DF"; }

.mdi-brightness-7:before {
  content: "\F0E0"; }

.mdi-brightness-auto:before {
  content: "\F0E1"; }

.mdi-broom:before {
  content: "\F0E2"; }

.mdi-brush:before {
  content: "\F0E3"; }

.mdi-buffer:before {
  content: "\F619"; }

.mdi-bug:before {
  content: "\F0E4"; }

.mdi-bulletin-board:before {
  content: "\F0E5"; }

.mdi-bullhorn:before {
  content: "\F0E6"; }

.mdi-bullseye:before {
  content: "\F5DD"; }

.mdi-bus:before {
  content: "\F0E7"; }

.mdi-bus-articulated-end:before {
  content: "\F79B"; }

.mdi-bus-articulated-front:before {
  content: "\F79C"; }

.mdi-bus-double-decker:before {
  content: "\F79D"; }

.mdi-bus-school:before {
  content: "\F79E"; }

.mdi-bus-side:before {
  content: "\F79F"; }

.mdi-cached:before {
  content: "\F0E8"; }

.mdi-cake:before {
  content: "\F0E9"; }

.mdi-cake-layered:before {
  content: "\F0EA"; }

.mdi-cake-variant:before {
  content: "\F0EB"; }

.mdi-calculator:before {
  content: "\F0EC"; }

.mdi-calendar:before {
  content: "\F0ED"; }

.mdi-calendar-blank:before {
  content: "\F0EE"; }

.mdi-calendar-check:before {
  content: "\F0EF"; }

.mdi-calendar-clock:before {
  content: "\F0F0"; }

.mdi-calendar-multiple:before {
  content: "\F0F1"; }

.mdi-calendar-multiple-check:before {
  content: "\F0F2"; }

.mdi-calendar-plus:before {
  content: "\F0F3"; }

.mdi-calendar-question:before {
  content: "\F691"; }

.mdi-calendar-range:before {
  content: "\F678"; }

.mdi-calendar-remove:before {
  content: "\F0F4"; }

.mdi-calendar-text:before {
  content: "\F0F5"; }

.mdi-calendar-today:before {
  content: "\F0F6"; }

.mdi-call-made:before {
  content: "\F0F7"; }

.mdi-call-merge:before {
  content: "\F0F8"; }

.mdi-call-missed:before {
  content: "\F0F9"; }

.mdi-call-received:before {
  content: "\F0FA"; }

.mdi-call-split:before {
  content: "\F0FB"; }

.mdi-camcorder:before {
  content: "\F0FC"; }

.mdi-camcorder-box:before {
  content: "\F0FD"; }

.mdi-camcorder-box-off:before {
  content: "\F0FE"; }

.mdi-camcorder-off:before {
  content: "\F0FF"; }

.mdi-camera:before {
  content: "\F100"; }

.mdi-camera-burst:before {
  content: "\F692"; }

.mdi-camera-enhance:before {
  content: "\F101"; }

.mdi-camera-front:before {
  content: "\F102"; }

.mdi-camera-front-variant:before {
  content: "\F103"; }

.mdi-camera-gopro:before {
  content: "\F7A0"; }

.mdi-camera-iris:before {
  content: "\F104"; }

.mdi-camera-metering-center:before {
  content: "\F7A1"; }

.mdi-camera-metering-matrix:before {
  content: "\F7A2"; }

.mdi-camera-metering-partial:before {
  content: "\F7A3"; }

.mdi-camera-metering-spot:before {
  content: "\F7A4"; }

.mdi-camera-off:before {
  content: "\F5DF"; }

.mdi-camera-party-mode:before {
  content: "\F105"; }

.mdi-camera-rear:before {
  content: "\F106"; }

.mdi-camera-rear-variant:before {
  content: "\F107"; }

.mdi-camera-switch:before {
  content: "\F108"; }

.mdi-camera-timer:before {
  content: "\F109"; }

.mdi-cancel:before {
  content: "\F739"; }

.mdi-candle:before {
  content: "\F5E2"; }

.mdi-candycane:before {
  content: "\F10A"; }

.mdi-cannabis:before {
  content: "\F7A5"; }

.mdi-car:before {
  content: "\F10B"; }

.mdi-car-battery:before {
  content: "\F10C"; }

.mdi-car-connected:before {
  content: "\F10D"; }

.mdi-car-convertible:before {
  content: "\F7A6"; }

.mdi-car-estate:before {
  content: "\F7A7"; }

.mdi-car-hatchback:before {
  content: "\F7A8"; }

.mdi-car-pickup:before {
  content: "\F7A9"; }

.mdi-car-side:before {
  content: "\F7AA"; }

.mdi-car-sports:before {
  content: "\F7AB"; }

.mdi-car-wash:before {
  content: "\F10E"; }

.mdi-caravan:before {
  content: "\F7AC"; }

.mdi-cards:before {
  content: "\F638"; }

.mdi-cards-outline:before {
  content: "\F639"; }

.mdi-cards-playing-outline:before {
  content: "\F63A"; }

.mdi-cards-variant:before {
  content: "\F6C6"; }

.mdi-carrot:before {
  content: "\F10F"; }

.mdi-cart:before {
  content: "\F110"; }

.mdi-cart-off:before {
  content: "\F66B"; }

.mdi-cart-outline:before {
  content: "\F111"; }

.mdi-cart-plus:before {
  content: "\F112"; }

.mdi-case-sensitive-alt:before {
  content: "\F113"; }

.mdi-cash:before {
  content: "\F114"; }

.mdi-cash-100:before {
  content: "\F115"; }

.mdi-cash-multiple:before {
  content: "\F116"; }

.mdi-cash-usd:before {
  content: "\F117"; }

.mdi-cast:before {
  content: "\F118"; }

.mdi-cast-connected:before {
  content: "\F119"; }

.mdi-cast-off:before {
  content: "\F789"; }

.mdi-castle:before {
  content: "\F11A"; }

.mdi-cat:before {
  content: "\F11B"; }

.mdi-cctv:before {
  content: "\F7AD"; }

.mdi-ceiling-light:before {
  content: "\F768"; }

.mdi-cellphone:before {
  content: "\F11C"; }

.mdi-cellphone-android:before {
  content: "\F11D"; }

.mdi-cellphone-basic:before {
  content: "\F11E"; }

.mdi-cellphone-dock:before {
  content: "\F11F"; }

.mdi-cellphone-iphone:before {
  content: "\F120"; }

.mdi-cellphone-link:before {
  content: "\F121"; }

.mdi-cellphone-link-off:before {
  content: "\F122"; }

.mdi-cellphone-settings:before {
  content: "\F123"; }

.mdi-cellphone-wireless:before {
  content: "\F814"; }

.mdi-certificate:before {
  content: "\F124"; }

.mdi-chair-school:before {
  content: "\F125"; }

.mdi-chart-arc:before {
  content: "\F126"; }

.mdi-chart-areaspline:before {
  content: "\F127"; }

.mdi-chart-bar:before {
  content: "\F128"; }

.mdi-chart-bar-stacked:before {
  content: "\F769"; }

.mdi-chart-bubble:before {
  content: "\F5E3"; }

.mdi-chart-donut:before {
  content: "\F7AE"; }

.mdi-chart-donut-variant:before {
  content: "\F7AF"; }

.mdi-chart-gantt:before {
  content: "\F66C"; }

.mdi-chart-histogram:before {
  content: "\F129"; }

.mdi-chart-line:before {
  content: "\F12A"; }

.mdi-chart-line-stacked:before {
  content: "\F76A"; }

.mdi-chart-line-variant:before {
  content: "\F7B0"; }

.mdi-chart-pie:before {
  content: "\F12B"; }

.mdi-chart-scatterplot-hexbin:before {
  content: "\F66D"; }

.mdi-chart-timeline:before {
  content: "\F66E"; }

.mdi-check:before {
  content: "\F12C"; }

.mdi-check-all:before {
  content: "\F12D"; }

.mdi-check-circle:before {
  content: "\F5E0"; }

.mdi-check-circle-outline:before {
  content: "\F5E1"; }

.mdi-checkbox-blank:before {
  content: "\F12E"; }

.mdi-checkbox-blank-circle:before {
  content: "\F12F"; }

.mdi-checkbox-blank-circle-outline:before {
  content: "\F130"; }

.mdi-checkbox-blank-outline:before {
  content: "\F131"; }

.mdi-checkbox-marked:before {
  content: "\F132"; }

.mdi-checkbox-marked-circle:before {
  content: "\F133"; }

.mdi-checkbox-marked-circle-outline:before {
  content: "\F134"; }

.mdi-checkbox-marked-outline:before {
  content: "\F135"; }

.mdi-checkbox-multiple-blank:before {
  content: "\F136"; }

.mdi-checkbox-multiple-blank-circle:before {
  content: "\F63B"; }

.mdi-checkbox-multiple-blank-circle-outline:before {
  content: "\F63C"; }

.mdi-checkbox-multiple-blank-outline:before {
  content: "\F137"; }

.mdi-checkbox-multiple-marked:before {
  content: "\F138"; }

.mdi-checkbox-multiple-marked-circle:before {
  content: "\F63D"; }

.mdi-checkbox-multiple-marked-circle-outline:before {
  content: "\F63E"; }

.mdi-checkbox-multiple-marked-outline:before {
  content: "\F139"; }

.mdi-checkerboard:before {
  content: "\F13A"; }

.mdi-chemical-weapon:before {
  content: "\F13B"; }

.mdi-chevron-double-down:before {
  content: "\F13C"; }

.mdi-chevron-double-left:before {
  content: "\F13D"; }

.mdi-chevron-double-right:before {
  content: "\F13E"; }

.mdi-chevron-double-up:before {
  content: "\F13F"; }

.mdi-chevron-down:before {
  content: "\F140"; }

.mdi-chevron-left:before {
  content: "\F141"; }

.mdi-chevron-right:before {
  content: "\F142"; }

.mdi-chevron-up:before {
  content: "\F143"; }

.mdi-chili-hot:before {
  content: "\F7B1"; }

.mdi-chili-medium:before {
  content: "\F7B2"; }

.mdi-chili-mild:before {
  content: "\F7B3"; }

.mdi-chip:before {
  content: "\F61A"; }

.mdi-church:before {
  content: "\F144"; }

.mdi-circle:before {
  content: "\F764"; }

.mdi-circle-outline:before {
  content: "\F765"; }

.mdi-cisco-webex:before {
  content: "\F145"; }

.mdi-city:before {
  content: "\F146"; }

.mdi-clipboard:before {
  content: "\F147"; }

.mdi-clipboard-account:before {
  content: "\F148"; }

.mdi-clipboard-alert:before {
  content: "\F149"; }

.mdi-clipboard-arrow-down:before {
  content: "\F14A"; }

.mdi-clipboard-arrow-left:before {
  content: "\F14B"; }

.mdi-clipboard-check:before {
  content: "\F14C"; }

.mdi-clipboard-flow:before {
  content: "\F6C7"; }

.mdi-clipboard-outline:before {
  content: "\F14D"; }

.mdi-clipboard-plus:before {
  content: "\F750"; }

.mdi-clipboard-text:before {
  content: "\F14E"; }

.mdi-clippy:before {
  content: "\F14F"; }

.mdi-clock:before {
  content: "\F150"; }

.mdi-clock-alert:before {
  content: "\F5CE"; }

.mdi-clock-end:before {
  content: "\F151"; }

.mdi-clock-fast:before {
  content: "\F152"; }

.mdi-clock-in:before {
  content: "\F153"; }

.mdi-clock-out:before {
  content: "\F154"; }

.mdi-clock-start:before {
  content: "\F155"; }

.mdi-close:before {
  content: "\F156"; }

.mdi-close-box:before {
  content: "\F157"; }

.mdi-close-box-outline:before {
  content: "\F158"; }

.mdi-close-circle:before {
  content: "\F159"; }

.mdi-close-circle-outline:before {
  content: "\F15A"; }

.mdi-close-network:before {
  content: "\F15B"; }

.mdi-close-octagon:before {
  content: "\F15C"; }

.mdi-close-octagon-outline:before {
  content: "\F15D"; }

.mdi-close-outline:before {
  content: "\F6C8"; }

.mdi-closed-caption:before {
  content: "\F15E"; }

.mdi-cloud:before {
  content: "\F15F"; }

.mdi-cloud-braces:before {
  content: "\F7B4"; }

.mdi-cloud-check:before {
  content: "\F160"; }

.mdi-cloud-circle:before {
  content: "\F161"; }

.mdi-cloud-download:before {
  content: "\F162"; }

.mdi-cloud-off-outline:before {
  content: "\F164"; }

.mdi-cloud-outline:before {
  content: "\F163"; }

.mdi-cloud-print:before {
  content: "\F165"; }

.mdi-cloud-print-outline:before {
  content: "\F166"; }

.mdi-cloud-sync:before {
  content: "\F63F"; }

.mdi-cloud-tags:before {
  content: "\F7B5"; }

.mdi-cloud-upload:before {
  content: "\F167"; }

.mdi-clover:before {
  content: "\F815"; }

.mdi-code-array:before {
  content: "\F168"; }

.mdi-code-braces:before {
  content: "\F169"; }

.mdi-code-brackets:before {
  content: "\F16A"; }

.mdi-code-equal:before {
  content: "\F16B"; }

.mdi-code-greater-than:before {
  content: "\F16C"; }

.mdi-code-greater-than-or-equal:before {
  content: "\F16D"; }

.mdi-code-less-than:before {
  content: "\F16E"; }

.mdi-code-less-than-or-equal:before {
  content: "\F16F"; }

.mdi-code-not-equal:before {
  content: "\F170"; }

.mdi-code-not-equal-variant:before {
  content: "\F171"; }

.mdi-code-parentheses:before {
  content: "\F172"; }

.mdi-code-string:before {
  content: "\F173"; }

.mdi-code-tags:before {
  content: "\F174"; }

.mdi-code-tags-check:before {
  content: "\F693"; }

.mdi-codepen:before {
  content: "\F175"; }

.mdi-coffee:before {
  content: "\F176"; }

.mdi-coffee-outline:before {
  content: "\F6C9"; }

.mdi-coffee-to-go:before {
  content: "\F177"; }

.mdi-coin:before {
  content: "\F178"; }

.mdi-coins:before {
  content: "\F694"; }

.mdi-collage:before {
  content: "\F640"; }

.mdi-color-helper:before {
  content: "\F179"; }

.mdi-comment:before {
  content: "\F17A"; }

.mdi-comment-account:before {
  content: "\F17B"; }

.mdi-comment-account-outline:before {
  content: "\F17C"; }

.mdi-comment-alert:before {
  content: "\F17D"; }

.mdi-comment-alert-outline:before {
  content: "\F17E"; }

.mdi-comment-check:before {
  content: "\F17F"; }

.mdi-comment-check-outline:before {
  content: "\F180"; }

.mdi-comment-multiple-outline:before {
  content: "\F181"; }

.mdi-comment-outline:before {
  content: "\F182"; }

.mdi-comment-plus-outline:before {
  content: "\F183"; }

.mdi-comment-processing:before {
  content: "\F184"; }

.mdi-comment-processing-outline:before {
  content: "\F185"; }

.mdi-comment-question:before {
  content: "\F816"; }

.mdi-comment-question-outline:before {
  content: "\F186"; }

.mdi-comment-remove:before {
  content: "\F5DE"; }

.mdi-comment-remove-outline:before {
  content: "\F187"; }

.mdi-comment-text:before {
  content: "\F188"; }

.mdi-comment-text-outline:before {
  content: "\F189"; }

.mdi-compare:before {
  content: "\F18A"; }

.mdi-compass:before {
  content: "\F18B"; }

.mdi-compass-outline:before {
  content: "\F18C"; }

.mdi-console:before {
  content: "\F18D"; }

.mdi-console-line:before {
  content: "\F7B6"; }

.mdi-contact-mail:before {
  content: "\F18E"; }

.mdi-contacts:before {
  content: "\F6CA"; }

.mdi-content-copy:before {
  content: "\F18F"; }

.mdi-content-cut:before {
  content: "\F190"; }

.mdi-content-duplicate:before {
  content: "\F191"; }

.mdi-content-paste:before {
  content: "\F192"; }

.mdi-content-save:before {
  content: "\F193"; }

.mdi-content-save-all:before {
  content: "\F194"; }

.mdi-content-save-outline:before {
  content: "\F817"; }

.mdi-content-save-settings:before {
  content: "\F61B"; }

.mdi-contrast:before {
  content: "\F195"; }

.mdi-contrast-box:before {
  content: "\F196"; }

.mdi-contrast-circle:before {
  content: "\F197"; }

.mdi-cookie:before {
  content: "\F198"; }

.mdi-copyright:before {
  content: "\F5E6"; }

.mdi-corn:before {
  content: "\F7B7"; }

.mdi-counter:before {
  content: "\F199"; }

.mdi-cow:before {
  content: "\F19A"; }

.mdi-creation:before {
  content: "\F1C9"; }

.mdi-credit-card:before {
  content: "\F19B"; }

.mdi-credit-card-multiple:before {
  content: "\F19C"; }

.mdi-credit-card-off:before {
  content: "\F5E4"; }

.mdi-credit-card-plus:before {
  content: "\F675"; }

.mdi-credit-card-scan:before {
  content: "\F19D"; }

.mdi-crop:before {
  content: "\F19E"; }

.mdi-crop-free:before {
  content: "\F19F"; }

.mdi-crop-landscape:before {
  content: "\F1A0"; }

.mdi-crop-portrait:before {
  content: "\F1A1"; }

.mdi-crop-rotate:before {
  content: "\F695"; }

.mdi-crop-square:before {
  content: "\F1A2"; }

.mdi-crosshairs:before {
  content: "\F1A3"; }

.mdi-crosshairs-gps:before {
  content: "\F1A4"; }

.mdi-crown:before {
  content: "\F1A5"; }

.mdi-cube:before {
  content: "\F1A6"; }

.mdi-cube-outline:before {
  content: "\F1A7"; }

.mdi-cube-send:before {
  content: "\F1A8"; }

.mdi-cube-unfolded:before {
  content: "\F1A9"; }

.mdi-cup:before {
  content: "\F1AA"; }

.mdi-cup-off:before {
  content: "\F5E5"; }

.mdi-cup-water:before {
  content: "\F1AB"; }

.mdi-currency-btc:before {
  content: "\F1AC"; }

.mdi-currency-chf:before {
  content: "\F7B8"; }

.mdi-currency-cny:before {
  content: "\F7B9"; }

.mdi-currency-eth:before {
  content: "\F7BA"; }

.mdi-currency-eur:before {
  content: "\F1AD"; }

.mdi-currency-gbp:before {
  content: "\F1AE"; }

.mdi-currency-inr:before {
  content: "\F1AF"; }

.mdi-currency-jpy:before {
  content: "\F7BB"; }

.mdi-currency-krw:before {
  content: "\F7BC"; }

.mdi-currency-ngn:before {
  content: "\F1B0"; }

.mdi-currency-rub:before {
  content: "\F1B1"; }

.mdi-currency-sign:before {
  content: "\F7BD"; }

.mdi-currency-try:before {
  content: "\F1B2"; }

.mdi-currency-twd:before {
  content: "\F7BE"; }

.mdi-currency-usd:before {
  content: "\F1B3"; }

.mdi-currency-usd-off:before {
  content: "\F679"; }

.mdi-cursor-default:before {
  content: "\F1B4"; }

.mdi-cursor-default-outline:before {
  content: "\F1B5"; }

.mdi-cursor-move:before {
  content: "\F1B6"; }

.mdi-cursor-pointer:before {
  content: "\F1B7"; }

.mdi-cursor-text:before {
  content: "\F5E7"; }

.mdi-database:before {
  content: "\F1B8"; }

.mdi-database-minus:before {
  content: "\F1B9"; }

.mdi-database-plus:before {
  content: "\F1BA"; }

.mdi-debug-step-into:before {
  content: "\F1BB"; }

.mdi-debug-step-out:before {
  content: "\F1BC"; }

.mdi-debug-step-over:before {
  content: "\F1BD"; }

.mdi-decagram:before {
  content: "\F76B"; }

.mdi-decagram-outline:before {
  content: "\F76C"; }

.mdi-decimal-decrease:before {
  content: "\F1BE"; }

.mdi-decimal-increase:before {
  content: "\F1BF"; }

.mdi-delete:before {
  content: "\F1C0"; }

.mdi-delete-circle:before {
  content: "\F682"; }

.mdi-delete-empty:before {
  content: "\F6CB"; }

.mdi-delete-forever:before {
  content: "\F5E8"; }

.mdi-delete-restore:before {
  content: "\F818"; }

.mdi-delete-sweep:before {
  content: "\F5E9"; }

.mdi-delete-variant:before {
  content: "\F1C1"; }

.mdi-delta:before {
  content: "\F1C2"; }

.mdi-deskphone:before {
  content: "\F1C3"; }

.mdi-desktop-classic:before {
  content: "\F7BF"; }

.mdi-desktop-mac:before {
  content: "\F1C4"; }

.mdi-desktop-tower:before {
  content: "\F1C5"; }

.mdi-details:before {
  content: "\F1C6"; }

.mdi-developer-board:before {
  content: "\F696"; }

.mdi-deviantart:before {
  content: "\F1C7"; }

.mdi-dialpad:before {
  content: "\F61C"; }

.mdi-diamond:before {
  content: "\F1C8"; }

.mdi-dice-1:before {
  content: "\F1CA"; }

.mdi-dice-2:before {
  content: "\F1CB"; }

.mdi-dice-3:before {
  content: "\F1CC"; }

.mdi-dice-4:before {
  content: "\F1CD"; }

.mdi-dice-5:before {
  content: "\F1CE"; }

.mdi-dice-6:before {
  content: "\F1CF"; }

.mdi-dice-d10:before {
  content: "\F76E"; }

.mdi-dice-d20:before {
  content: "\F5EA"; }

.mdi-dice-d4:before {
  content: "\F5EB"; }

.mdi-dice-d6:before {
  content: "\F5EC"; }

.mdi-dice-d8:before {
  content: "\F5ED"; }

.mdi-dice-multiple:before {
  content: "\F76D"; }

.mdi-dictionary:before {
  content: "\F61D"; }

.mdi-dip-switch:before {
  content: "\F7C0"; }

.mdi-directions:before {
  content: "\F1D0"; }

.mdi-directions-fork:before {
  content: "\F641"; }

.mdi-discord:before {
  content: "\F66F"; }

.mdi-disk:before {
  content: "\F5EE"; }

.mdi-disk-alert:before {
  content: "\F1D1"; }

.mdi-disqus:before {
  content: "\F1D2"; }

.mdi-disqus-outline:before {
  content: "\F1D3"; }

.mdi-division:before {
  content: "\F1D4"; }

.mdi-division-box:before {
  content: "\F1D5"; }

.mdi-dna:before {
  content: "\F683"; }

.mdi-dns:before {
  content: "\F1D6"; }

.mdi-do-not-disturb:before {
  content: "\F697"; }

.mdi-do-not-disturb-off:before {
  content: "\F698"; }

.mdi-dolby:before {
  content: "\F6B2"; }

.mdi-domain:before {
  content: "\F1D7"; }

.mdi-donkey:before {
  content: "\F7C1"; }

.mdi-door:before {
  content: "\F819"; }

.mdi-door-closed:before {
  content: "\F81A"; }

.mdi-door-open:before {
  content: "\F81B"; }

.mdi-dots-horizontal:before {
  content: "\F1D8"; }

.mdi-dots-horizontal-circle:before {
  content: "\F7C2"; }

.mdi-dots-vertical:before {
  content: "\F1D9"; }

.mdi-dots-vertical-circle:before {
  content: "\F7C3"; }

.mdi-douban:before {
  content: "\F699"; }

.mdi-download:before {
  content: "\F1DA"; }

.mdi-download-network:before {
  content: "\F6F3"; }

.mdi-drag:before {
  content: "\F1DB"; }

.mdi-drag-horizontal:before {
  content: "\F1DC"; }

.mdi-drag-vertical:before {
  content: "\F1DD"; }

.mdi-drawing:before {
  content: "\F1DE"; }

.mdi-drawing-box:before {
  content: "\F1DF"; }

.mdi-dribbble:before {
  content: "\F1E0"; }

.mdi-dribbble-box:before {
  content: "\F1E1"; }

.mdi-drone:before {
  content: "\F1E2"; }

.mdi-dropbox:before {
  content: "\F1E3"; }

.mdi-drupal:before {
  content: "\F1E4"; }

.mdi-duck:before {
  content: "\F1E5"; }

.mdi-dumbbell:before {
  content: "\F1E6"; }

.mdi-ear-hearing:before {
  content: "\F7C4"; }

.mdi-earth:before {
  content: "\F1E7"; }

.mdi-earth-box:before {
  content: "\F6CC"; }

.mdi-earth-box-off:before {
  content: "\F6CD"; }

.mdi-earth-off:before {
  content: "\F1E8"; }

.mdi-edge:before {
  content: "\F1E9"; }

.mdi-eject:before {
  content: "\F1EA"; }

.mdi-elephant:before {
  content: "\F7C5"; }

.mdi-elevation-decline:before {
  content: "\F1EB"; }

.mdi-elevation-rise:before {
  content: "\F1EC"; }

.mdi-elevator:before {
  content: "\F1ED"; }

.mdi-email:before {
  content: "\F1EE"; }

.mdi-email-alert:before {
  content: "\F6CE"; }

.mdi-email-open:before {
  content: "\F1EF"; }

.mdi-email-open-outline:before {
  content: "\F5EF"; }

.mdi-email-outline:before {
  content: "\F1F0"; }

.mdi-email-secure:before {
  content: "\F1F1"; }

.mdi-email-variant:before {
  content: "\F5F0"; }

.mdi-emby:before {
  content: "\F6B3"; }

.mdi-emoticon:before {
  content: "\F1F2"; }

.mdi-emoticon-cool:before {
  content: "\F1F3"; }

.mdi-emoticon-dead:before {
  content: "\F69A"; }

.mdi-emoticon-devil:before {
  content: "\F1F4"; }

.mdi-emoticon-excited:before {
  content: "\F69B"; }

.mdi-emoticon-happy:before {
  content: "\F1F5"; }

.mdi-emoticon-neutral:before {
  content: "\F1F6"; }

.mdi-emoticon-poop:before {
  content: "\F1F7"; }

.mdi-emoticon-sad:before {
  content: "\F1F8"; }

.mdi-emoticon-tongue:before {
  content: "\F1F9"; }

.mdi-engine:before {
  content: "\F1FA"; }

.mdi-engine-outline:before {
  content: "\F1FB"; }

.mdi-equal:before {
  content: "\F1FC"; }

.mdi-equal-box:before {
  content: "\F1FD"; }

.mdi-eraser:before {
  content: "\F1FE"; }

.mdi-eraser-variant:before {
  content: "\F642"; }

.mdi-escalator:before {
  content: "\F1FF"; }

.mdi-ethernet:before {
  content: "\F200"; }

.mdi-ethernet-cable:before {
  content: "\F201"; }

.mdi-ethernet-cable-off:before {
  content: "\F202"; }

.mdi-etsy:before {
  content: "\F203"; }

.mdi-ev-station:before {
  content: "\F5F1"; }

.mdi-eventbrite:before {
  content: "\F7C6"; }

.mdi-evernote:before {
  content: "\F204"; }

.mdi-exclamation:before {
  content: "\F205"; }

.mdi-exit-to-app:before {
  content: "\F206"; }

.mdi-export:before {
  content: "\F207"; }

.mdi-eye:before {
  content: "\F208"; }

.mdi-eye-off:before {
  content: "\F209"; }

.mdi-eye-off-outline:before {
  content: "\F6D0"; }

.mdi-eye-outline:before {
  content: "\F6CF"; }

.mdi-eyedropper:before {
  content: "\F20A"; }

.mdi-eyedropper-variant:before {
  content: "\F20B"; }

.mdi-face:before {
  content: "\F643"; }

.mdi-face-profile:before {
  content: "\F644"; }

.mdi-facebook:before {
  content: "\F20C"; }

.mdi-facebook-box:before {
  content: "\F20D"; }

.mdi-facebook-messenger:before {
  content: "\F20E"; }

.mdi-factory:before {
  content: "\F20F"; }

.mdi-fan:before {
  content: "\F210"; }

.mdi-fan-off:before {
  content: "\F81C"; }

.mdi-fast-forward:before {
  content: "\F211"; }

.mdi-fast-forward-outline:before {
  content: "\F6D1"; }

.mdi-fax:before {
  content: "\F212"; }

.mdi-feather:before {
  content: "\F6D2"; }

.mdi-ferry:before {
  content: "\F213"; }

.mdi-file:before {
  content: "\F214"; }

.mdi-file-account:before {
  content: "\F73A"; }

.mdi-file-chart:before {
  content: "\F215"; }

.mdi-file-check:before {
  content: "\F216"; }

.mdi-file-cloud:before {
  content: "\F217"; }

.mdi-file-delimited:before {
  content: "\F218"; }

.mdi-file-document:before {
  content: "\F219"; }

.mdi-file-document-box:before {
  content: "\F21A"; }

.mdi-file-excel:before {
  content: "\F21B"; }

.mdi-file-excel-box:before {
  content: "\F21C"; }

.mdi-file-export:before {
  content: "\F21D"; }

.mdi-file-find:before {
  content: "\F21E"; }

.mdi-file-hidden:before {
  content: "\F613"; }

.mdi-file-image:before {
  content: "\F21F"; }

.mdi-file-import:before {
  content: "\F220"; }

.mdi-file-lock:before {
  content: "\F221"; }

.mdi-file-multiple:before {
  content: "\F222"; }

.mdi-file-music:before {
  content: "\F223"; }

.mdi-file-outline:before {
  content: "\F224"; }

.mdi-file-pdf:before {
  content: "\F225"; }

.mdi-file-pdf-box:before {
  content: "\F226"; }

.mdi-file-percent:before {
  content: "\F81D"; }

.mdi-file-plus:before {
  content: "\F751"; }

.mdi-file-powerpoint:before {
  content: "\F227"; }

.mdi-file-powerpoint-box:before {
  content: "\F228"; }

.mdi-file-presentation-box:before {
  content: "\F229"; }

.mdi-file-restore:before {
  content: "\F670"; }

.mdi-file-send:before {
  content: "\F22A"; }

.mdi-file-tree:before {
  content: "\F645"; }

.mdi-file-video:before {
  content: "\F22B"; }

.mdi-file-word:before {
  content: "\F22C"; }

.mdi-file-word-box:before {
  content: "\F22D"; }

.mdi-file-xml:before {
  content: "\F22E"; }

.mdi-film:before {
  content: "\F22F"; }

.mdi-filmstrip:before {
  content: "\F230"; }

.mdi-filmstrip-off:before {
  content: "\F231"; }

.mdi-filter:before {
  content: "\F232"; }

.mdi-filter-outline:before {
  content: "\F233"; }

.mdi-filter-remove:before {
  content: "\F234"; }

.mdi-filter-remove-outline:before {
  content: "\F235"; }

.mdi-filter-variant:before {
  content: "\F236"; }

.mdi-finance:before {
  content: "\F81E"; }

.mdi-find-replace:before {
  content: "\F6D3"; }

.mdi-fingerprint:before {
  content: "\F237"; }

.mdi-fire:before {
  content: "\F238"; }

.mdi-firefox:before {
  content: "\F239"; }

.mdi-fish:before {
  content: "\F23A"; }

.mdi-flag:before {
  content: "\F23B"; }

.mdi-flag-checkered:before {
  content: "\F23C"; }

.mdi-flag-outline:before {
  content: "\F23D"; }

.mdi-flag-triangle:before {
  content: "\F23F"; }

.mdi-flag-variant:before {
  content: "\F240"; }

.mdi-flag-variant-outline:before {
  content: "\F23E"; }

.mdi-flash:before {
  content: "\F241"; }

.mdi-flash-auto:before {
  content: "\F242"; }

.mdi-flash-circle:before {
  content: "\F81F"; }

.mdi-flash-off:before {
  content: "\F243"; }

.mdi-flash-outline:before {
  content: "\F6D4"; }

.mdi-flash-red-eye:before {
  content: "\F67A"; }

.mdi-flashlight:before {
  content: "\F244"; }

.mdi-flashlight-off:before {
  content: "\F245"; }

.mdi-flask:before {
  content: "\F093"; }

.mdi-flask-empty:before {
  content: "\F094"; }

.mdi-flask-empty-outline:before {
  content: "\F095"; }

.mdi-flask-outline:before {
  content: "\F096"; }

.mdi-flattr:before {
  content: "\F246"; }

.mdi-flip-to-back:before {
  content: "\F247"; }

.mdi-flip-to-front:before {
  content: "\F248"; }

.mdi-floor-plan:before {
  content: "\F820"; }

.mdi-floppy:before {
  content: "\F249"; }

.mdi-flower:before {
  content: "\F24A"; }

.mdi-folder:before {
  content: "\F24B"; }

.mdi-folder-account:before {
  content: "\F24C"; }

.mdi-folder-download:before {
  content: "\F24D"; }

.mdi-folder-google-drive:before {
  content: "\F24E"; }

.mdi-folder-image:before {
  content: "\F24F"; }

.mdi-folder-lock:before {
  content: "\F250"; }

.mdi-folder-lock-open:before {
  content: "\F251"; }

.mdi-folder-move:before {
  content: "\F252"; }

.mdi-folder-multiple:before {
  content: "\F253"; }

.mdi-folder-multiple-image:before {
  content: "\F254"; }

.mdi-folder-multiple-outline:before {
  content: "\F255"; }

.mdi-folder-open:before {
  content: "\F76F"; }

.mdi-folder-outline:before {
  content: "\F256"; }

.mdi-folder-plus:before {
  content: "\F257"; }

.mdi-folder-remove:before {
  content: "\F258"; }

.mdi-folder-star:before {
  content: "\F69C"; }

.mdi-folder-upload:before {
  content: "\F259"; }

.mdi-font-awesome:before {
  content: "\F03A"; }

.mdi-food:before {
  content: "\F25A"; }

.mdi-food-apple:before {
  content: "\F25B"; }

.mdi-food-croissant:before {
  content: "\F7C7"; }

.mdi-food-fork-drink:before {
  content: "\F5F2"; }

.mdi-food-off:before {
  content: "\F5F3"; }

.mdi-food-variant:before {
  content: "\F25C"; }

.mdi-football:before {
  content: "\F25D"; }

.mdi-football-australian:before {
  content: "\F25E"; }

.mdi-football-helmet:before {
  content: "\F25F"; }

.mdi-forklift:before {
  content: "\F7C8"; }

.mdi-format-align-bottom:before {
  content: "\F752"; }

.mdi-format-align-center:before {
  content: "\F260"; }

.mdi-format-align-justify:before {
  content: "\F261"; }

.mdi-format-align-left:before {
  content: "\F262"; }

.mdi-format-align-middle:before {
  content: "\F753"; }

.mdi-format-align-right:before {
  content: "\F263"; }

.mdi-format-align-top:before {
  content: "\F754"; }

.mdi-format-annotation-plus:before {
  content: "\F646"; }

.mdi-format-bold:before {
  content: "\F264"; }

.mdi-format-clear:before {
  content: "\F265"; }

.mdi-format-color-fill:before {
  content: "\F266"; }

.mdi-format-color-text:before {
  content: "\F69D"; }

.mdi-format-float-center:before {
  content: "\F267"; }

.mdi-format-float-left:before {
  content: "\F268"; }

.mdi-format-float-none:before {
  content: "\F269"; }

.mdi-format-float-right:before {
  content: "\F26A"; }

.mdi-format-font:before {
  content: "\F6D5"; }

.mdi-format-header-1:before {
  content: "\F26B"; }

.mdi-format-header-2:before {
  content: "\F26C"; }

.mdi-format-header-3:before {
  content: "\F26D"; }

.mdi-format-header-4:before {
  content: "\F26E"; }

.mdi-format-header-5:before {
  content: "\F26F"; }

.mdi-format-header-6:before {
  content: "\F270"; }

.mdi-format-header-decrease:before {
  content: "\F271"; }

.mdi-format-header-equal:before {
  content: "\F272"; }

.mdi-format-header-increase:before {
  content: "\F273"; }

.mdi-format-header-pound:before {
  content: "\F274"; }

.mdi-format-horizontal-align-center:before {
  content: "\F61E"; }

.mdi-format-horizontal-align-left:before {
  content: "\F61F"; }

.mdi-format-horizontal-align-right:before {
  content: "\F620"; }

.mdi-format-indent-decrease:before {
  content: "\F275"; }

.mdi-format-indent-increase:before {
  content: "\F276"; }

.mdi-format-italic:before {
  content: "\F277"; }

.mdi-format-line-spacing:before {
  content: "\F278"; }

.mdi-format-line-style:before {
  content: "\F5C8"; }

.mdi-format-line-weight:before {
  content: "\F5C9"; }

.mdi-format-list-bulleted:before {
  content: "\F279"; }

.mdi-format-list-bulleted-type:before {
  content: "\F27A"; }

.mdi-format-list-checks:before {
  content: "\F755"; }

.mdi-format-list-numbers:before {
  content: "\F27B"; }

.mdi-format-page-break:before {
  content: "\F6D6"; }

.mdi-format-paint:before {
  content: "\F27C"; }

.mdi-format-paragraph:before {
  content: "\F27D"; }

.mdi-format-pilcrow:before {
  content: "\F6D7"; }

.mdi-format-quote-close:before {
  content: "\F27E"; }

.mdi-format-quote-open:before {
  content: "\F756"; }

.mdi-format-rotate-90:before {
  content: "\F6A9"; }

.mdi-format-section:before {
  content: "\F69E"; }

.mdi-format-size:before {
  content: "\F27F"; }

.mdi-format-strikethrough:before {
  content: "\F280"; }

.mdi-format-strikethrough-variant:before {
  content: "\F281"; }

.mdi-format-subscript:before {
  content: "\F282"; }

.mdi-format-superscript:before {
  content: "\F283"; }

.mdi-format-text:before {
  content: "\F284"; }

.mdi-format-textdirection-l-to-r:before {
  content: "\F285"; }

.mdi-format-textdirection-r-to-l:before {
  content: "\F286"; }

.mdi-format-title:before {
  content: "\F5F4"; }

.mdi-format-underline:before {
  content: "\F287"; }

.mdi-format-vertical-align-bottom:before {
  content: "\F621"; }

.mdi-format-vertical-align-center:before {
  content: "\F622"; }

.mdi-format-vertical-align-top:before {
  content: "\F623"; }

.mdi-format-wrap-inline:before {
  content: "\F288"; }

.mdi-format-wrap-square:before {
  content: "\F289"; }

.mdi-format-wrap-tight:before {
  content: "\F28A"; }

.mdi-format-wrap-top-bottom:before {
  content: "\F28B"; }

.mdi-forum:before {
  content: "\F28C"; }

.mdi-forum-outline:before {
  content: "\F821"; }

.mdi-forward:before {
  content: "\F28D"; }

.mdi-foursquare:before {
  content: "\F28E"; }

.mdi-fridge:before {
  content: "\F28F"; }

.mdi-fridge-filled:before {
  content: "\F290"; }

.mdi-fridge-filled-bottom:before {
  content: "\F291"; }

.mdi-fridge-filled-top:before {
  content: "\F292"; }

.mdi-fuel:before {
  content: "\F7C9"; }

.mdi-fullscreen:before {
  content: "\F293"; }

.mdi-fullscreen-exit:before {
  content: "\F294"; }

.mdi-function:before {
  content: "\F295"; }

.mdi-gamepad:before {
  content: "\F296"; }

.mdi-gamepad-variant:before {
  content: "\F297"; }

.mdi-garage:before {
  content: "\F6D8"; }

.mdi-garage-open:before {
  content: "\F6D9"; }

.mdi-gas-cylinder:before {
  content: "\F647"; }

.mdi-gas-station:before {
  content: "\F298"; }

.mdi-gate:before {
  content: "\F299"; }

.mdi-gauge:before {
  content: "\F29A"; }

.mdi-gavel:before {
  content: "\F29B"; }

.mdi-gender-female:before {
  content: "\F29C"; }

.mdi-gender-male:before {
  content: "\F29D"; }

.mdi-gender-male-female:before {
  content: "\F29E"; }

.mdi-gender-transgender:before {
  content: "\F29F"; }

.mdi-gesture:before {
  content: "\F7CA"; }

.mdi-gesture-double-tap:before {
  content: "\F73B"; }

.mdi-gesture-swipe-down:before {
  content: "\F73C"; }

.mdi-gesture-swipe-left:before {
  content: "\F73D"; }

.mdi-gesture-swipe-right:before {
  content: "\F73E"; }

.mdi-gesture-swipe-up:before {
  content: "\F73F"; }

.mdi-gesture-tap:before {
  content: "\F740"; }

.mdi-gesture-two-double-tap:before {
  content: "\F741"; }

.mdi-gesture-two-tap:before {
  content: "\F742"; }

.mdi-ghost:before {
  content: "\F2A0"; }

.mdi-gift:before {
  content: "\F2A1"; }

.mdi-git:before {
  content: "\F2A2"; }

.mdi-github-box:before {
  content: "\F2A3"; }

.mdi-github-circle:before {
  content: "\F2A4"; }

.mdi-github-face:before {
  content: "\F6DA"; }

.mdi-glass-flute:before {
  content: "\F2A5"; }

.mdi-glass-mug:before {
  content: "\F2A6"; }

.mdi-glass-stange:before {
  content: "\F2A7"; }

.mdi-glass-tulip:before {
  content: "\F2A8"; }

.mdi-glassdoor:before {
  content: "\F2A9"; }

.mdi-glasses:before {
  content: "\F2AA"; }

.mdi-gmail:before {
  content: "\F2AB"; }

.mdi-gnome:before {
  content: "\F2AC"; }

.mdi-golf:before {
  content: "\F822"; }

.mdi-gondola:before {
  content: "\F685"; }

.mdi-google:before {
  content: "\F2AD"; }

.mdi-google-analytics:before {
  content: "\F7CB"; }

.mdi-google-assistant:before {
  content: "\F7CC"; }

.mdi-google-cardboard:before {
  content: "\F2AE"; }

.mdi-google-chrome:before {
  content: "\F2AF"; }

.mdi-google-circles:before {
  content: "\F2B0"; }

.mdi-google-circles-communities:before {
  content: "\F2B1"; }

.mdi-google-circles-extended:before {
  content: "\F2B2"; }

.mdi-google-circles-group:before {
  content: "\F2B3"; }

.mdi-google-controller:before {
  content: "\F2B4"; }

.mdi-google-controller-off:before {
  content: "\F2B5"; }

.mdi-google-drive:before {
  content: "\F2B6"; }

.mdi-google-earth:before {
  content: "\F2B7"; }

.mdi-google-glass:before {
  content: "\F2B8"; }

.mdi-google-home:before {
  content: "\F823"; }

.mdi-google-keep:before {
  content: "\F6DB"; }

.mdi-google-maps:before {
  content: "\F5F5"; }

.mdi-google-nearby:before {
  content: "\F2B9"; }

.mdi-google-pages:before {
  content: "\F2BA"; }

.mdi-google-photos:before {
  content: "\F6DC"; }

.mdi-google-physical-web:before {
  content: "\F2BB"; }

.mdi-google-play:before {
  content: "\F2BC"; }

.mdi-google-plus:before {
  content: "\F2BD"; }

.mdi-google-plus-box:before {
  content: "\F2BE"; }

.mdi-google-translate:before {
  content: "\F2BF"; }

.mdi-google-wallet:before {
  content: "\F2C0"; }

.mdi-gradient:before {
  content: "\F69F"; }

.mdi-grease-pencil:before {
  content: "\F648"; }

.mdi-grid:before {
  content: "\F2C1"; }

.mdi-grid-large:before {
  content: "\F757"; }

.mdi-grid-off:before {
  content: "\F2C2"; }

.mdi-group:before {
  content: "\F2C3"; }

.mdi-guitar-acoustic:before {
  content: "\F770"; }

.mdi-guitar-electric:before {
  content: "\F2C4"; }

.mdi-guitar-pick:before {
  content: "\F2C5"; }

.mdi-guitar-pick-outline:before {
  content: "\F2C6"; }

.mdi-guy-fawkes-mask:before {
  content: "\F824"; }

.mdi-hackernews:before {
  content: "\F624"; }

.mdi-hamburger:before {
  content: "\F684"; }

.mdi-hand-pointing-right:before {
  content: "\F2C7"; }

.mdi-hanger:before {
  content: "\F2C8"; }

.mdi-hangouts:before {
  content: "\F2C9"; }

.mdi-harddisk:before {
  content: "\F2CA"; }

.mdi-headphones:before {
  content: "\F2CB"; }

.mdi-headphones-box:before {
  content: "\F2CC"; }

.mdi-headphones-off:before {
  content: "\F7CD"; }

.mdi-headphones-settings:before {
  content: "\F2CD"; }

.mdi-headset:before {
  content: "\F2CE"; }

.mdi-headset-dock:before {
  content: "\F2CF"; }

.mdi-headset-off:before {
  content: "\F2D0"; }

.mdi-heart:before {
  content: "\F2D1"; }

.mdi-heart-box:before {
  content: "\F2D2"; }

.mdi-heart-box-outline:before {
  content: "\F2D3"; }

.mdi-heart-broken:before {
  content: "\F2D4"; }

.mdi-heart-half:before {
  content: "\F6DE"; }

.mdi-heart-half-full:before {
  content: "\F6DD"; }

.mdi-heart-half-outline:before {
  content: "\F6DF"; }

.mdi-heart-off:before {
  content: "\F758"; }

.mdi-heart-outline:before {
  content: "\F2D5"; }

.mdi-heart-pulse:before {
  content: "\F5F6"; }

.mdi-help:before {
  content: "\F2D6"; }

.mdi-help-box:before {
  content: "\F78A"; }

.mdi-help-circle:before {
  content: "\F2D7"; }

.mdi-help-circle-outline:before {
  content: "\F625"; }

.mdi-help-network:before {
  content: "\F6F4"; }

.mdi-hexagon:before {
  content: "\F2D8"; }

.mdi-hexagon-multiple:before {
  content: "\F6E0"; }

.mdi-hexagon-outline:before {
  content: "\F2D9"; }

.mdi-high-definition:before {
  content: "\F7CE"; }

.mdi-highway:before {
  content: "\F5F7"; }

.mdi-history:before {
  content: "\F2DA"; }

.mdi-hololens:before {
  content: "\F2DB"; }

.mdi-home:before {
  content: "\F2DC"; }

.mdi-home-account:before {
  content: "\F825"; }

.mdi-home-assistant:before {
  content: "\F7CF"; }

.mdi-home-automation:before {
  content: "\F7D0"; }

.mdi-home-circle:before {
  content: "\F7D1"; }

.mdi-home-heart:before {
  content: "\F826"; }

.mdi-home-map-marker:before {
  content: "\F5F8"; }

.mdi-home-modern:before {
  content: "\F2DD"; }

.mdi-home-outline:before {
  content: "\F6A0"; }

.mdi-home-variant:before {
  content: "\F2DE"; }

.mdi-hook:before {
  content: "\F6E1"; }

.mdi-hook-off:before {
  content: "\F6E2"; }

.mdi-hops:before {
  content: "\F2DF"; }

.mdi-hospital:before {
  content: "\F2E0"; }

.mdi-hospital-building:before {
  content: "\F2E1"; }

.mdi-hospital-marker:before {
  content: "\F2E2"; }

.mdi-hot-tub:before {
  content: "\F827"; }

.mdi-hotel:before {
  content: "\F2E3"; }

.mdi-houzz:before {
  content: "\F2E4"; }

.mdi-houzz-box:before {
  content: "\F2E5"; }

.mdi-hulu:before {
  content: "\F828"; }

.mdi-human:before {
  content: "\F2E6"; }

.mdi-human-child:before {
  content: "\F2E7"; }

.mdi-human-female:before {
  content: "\F649"; }

.mdi-human-greeting:before {
  content: "\F64A"; }

.mdi-human-handsdown:before {
  content: "\F64B"; }

.mdi-human-handsup:before {
  content: "\F64C"; }

.mdi-human-male:before {
  content: "\F64D"; }

.mdi-human-male-female:before {
  content: "\F2E8"; }

.mdi-human-pregnant:before {
  content: "\F5CF"; }

.mdi-humble-bundle:before {
  content: "\F743"; }

.mdi-ice-cream:before {
  content: "\F829"; }

.mdi-image:before {
  content: "\F2E9"; }

.mdi-image-album:before {
  content: "\F2EA"; }

.mdi-image-area:before {
  content: "\F2EB"; }

.mdi-image-area-close:before {
  content: "\F2EC"; }

.mdi-image-broken:before {
  content: "\F2ED"; }

.mdi-image-broken-variant:before {
  content: "\F2EE"; }

.mdi-image-filter:before {
  content: "\F2EF"; }

.mdi-image-filter-black-white:before {
  content: "\F2F0"; }

.mdi-image-filter-center-focus:before {
  content: "\F2F1"; }

.mdi-image-filter-center-focus-weak:before {
  content: "\F2F2"; }

.mdi-image-filter-drama:before {
  content: "\F2F3"; }

.mdi-image-filter-frames:before {
  content: "\F2F4"; }

.mdi-image-filter-hdr:before {
  content: "\F2F5"; }

.mdi-image-filter-none:before {
  content: "\F2F6"; }

.mdi-image-filter-tilt-shift:before {
  content: "\F2F7"; }

.mdi-image-filter-vintage:before {
  content: "\F2F8"; }

.mdi-image-multiple:before {
  content: "\F2F9"; }

.mdi-image-off:before {
  content: "\F82A"; }

.mdi-import:before {
  content: "\F2FA"; }

.mdi-inbox:before {
  content: "\F686"; }

.mdi-inbox-arrow-down:before {
  content: "\F2FB"; }

.mdi-inbox-arrow-up:before {
  content: "\F3D1"; }

.mdi-incognito:before {
  content: "\F5F9"; }

.mdi-infinity:before {
  content: "\F6E3"; }

.mdi-information:before {
  content: "\F2FC"; }

.mdi-information-outline:before {
  content: "\F2FD"; }

.mdi-information-variant:before {
  content: "\F64E"; }

.mdi-instagram:before {
  content: "\F2FE"; }

.mdi-instapaper:before {
  content: "\F2FF"; }

.mdi-internet-explorer:before {
  content: "\F300"; }

.mdi-invert-colors:before {
  content: "\F301"; }

.mdi-itunes:before {
  content: "\F676"; }

.mdi-jeepney:before {
  content: "\F302"; }

.mdi-jira:before {
  content: "\F303"; }

.mdi-jsfiddle:before {
  content: "\F304"; }

.mdi-json:before {
  content: "\F626"; }

.mdi-karate:before {
  content: "\F82B"; }

.mdi-keg:before {
  content: "\F305"; }

.mdi-kettle:before {
  content: "\F5FA"; }

.mdi-key:before {
  content: "\F306"; }

.mdi-key-change:before {
  content: "\F307"; }

.mdi-key-minus:before {
  content: "\F308"; }

.mdi-key-plus:before {
  content: "\F309"; }

.mdi-key-remove:before {
  content: "\F30A"; }

.mdi-key-variant:before {
  content: "\F30B"; }

.mdi-keyboard:before {
  content: "\F30C"; }

.mdi-keyboard-backspace:before {
  content: "\F30D"; }

.mdi-keyboard-caps:before {
  content: "\F30E"; }

.mdi-keyboard-close:before {
  content: "\F30F"; }

.mdi-keyboard-off:before {
  content: "\F310"; }

.mdi-keyboard-return:before {
  content: "\F311"; }

.mdi-keyboard-tab:before {
  content: "\F312"; }

.mdi-keyboard-variant:before {
  content: "\F313"; }

.mdi-kickstarter:before {
  content: "\F744"; }

.mdi-kodi:before {
  content: "\F314"; }

.mdi-label:before {
  content: "\F315"; }

.mdi-label-outline:before {
  content: "\F316"; }

.mdi-ladybug:before {
  content: "\F82C"; }

.mdi-lambda:before {
  content: "\F627"; }

.mdi-lamp:before {
  content: "\F6B4"; }

.mdi-lan:before {
  content: "\F317"; }

.mdi-lan-connect:before {
  content: "\F318"; }

.mdi-lan-disconnect:before {
  content: "\F319"; }

.mdi-lan-pending:before {
  content: "\F31A"; }

.mdi-language-c:before {
  content: "\F671"; }

.mdi-language-cpp:before {
  content: "\F672"; }

.mdi-language-csharp:before {
  content: "\F31B"; }

.mdi-language-css3:before {
  content: "\F31C"; }

.mdi-language-go:before {
  content: "\F7D2"; }

.mdi-language-html5:before {
  content: "\F31D"; }

.mdi-language-javascript:before {
  content: "\F31E"; }

.mdi-language-php:before {
  content: "\F31F"; }

.mdi-language-python:before {
  content: "\F320"; }

.mdi-language-python-text:before {
  content: "\F321"; }

.mdi-language-r:before {
  content: "\F7D3"; }

.mdi-language-swift:before {
  content: "\F6E4"; }

.mdi-language-typescript:before {
  content: "\F6E5"; }

.mdi-laptop:before {
  content: "\F322"; }

.mdi-laptop-chromebook:before {
  content: "\F323"; }

.mdi-laptop-mac:before {
  content: "\F324"; }

.mdi-laptop-off:before {
  content: "\F6E6"; }

.mdi-laptop-windows:before {
  content: "\F325"; }

.mdi-lastfm:before {
  content: "\F326"; }

.mdi-lastpass:before {
  content: "\F446"; }

.mdi-launch:before {
  content: "\F327"; }

.mdi-lava-lamp:before {
  content: "\F7D4"; }

.mdi-layers:before {
  content: "\F328"; }

.mdi-layers-off:before {
  content: "\F329"; }

.mdi-lead-pencil:before {
  content: "\F64F"; }

.mdi-leaf:before {
  content: "\F32A"; }

.mdi-led-off:before {
  content: "\F32B"; }

.mdi-led-on:before {
  content: "\F32C"; }

.mdi-led-outline:before {
  content: "\F32D"; }

.mdi-led-strip:before {
  content: "\F7D5"; }

.mdi-led-variant-off:before {
  content: "\F32E"; }

.mdi-led-variant-on:before {
  content: "\F32F"; }

.mdi-led-variant-outline:before {
  content: "\F330"; }

.mdi-library:before {
  content: "\F331"; }

.mdi-library-books:before {
  content: "\F332"; }

.mdi-library-music:before {
  content: "\F333"; }

.mdi-library-plus:before {
  content: "\F334"; }

.mdi-lightbulb:before {
  content: "\F335"; }

.mdi-lightbulb-on:before {
  content: "\F6E7"; }

.mdi-lightbulb-on-outline:before {
  content: "\F6E8"; }

.mdi-lightbulb-outline:before {
  content: "\F336"; }

.mdi-link:before {
  content: "\F337"; }

.mdi-link-off:before {
  content: "\F338"; }

.mdi-link-variant:before {
  content: "\F339"; }

.mdi-link-variant-off:before {
  content: "\F33A"; }

.mdi-linkedin:before {
  content: "\F33B"; }

.mdi-linkedin-box:before {
  content: "\F33C"; }

.mdi-linux:before {
  content: "\F33D"; }

.mdi-loading:before {
  content: "\F771"; }

.mdi-lock:before {
  content: "\F33E"; }

.mdi-lock-open:before {
  content: "\F33F"; }

.mdi-lock-open-outline:before {
  content: "\F340"; }

.mdi-lock-outline:before {
  content: "\F341"; }

.mdi-lock-pattern:before {
  content: "\F6E9"; }

.mdi-lock-plus:before {
  content: "\F5FB"; }

.mdi-lock-reset:before {
  content: "\F772"; }

.mdi-locker:before {
  content: "\F7D6"; }

.mdi-locker-multiple:before {
  content: "\F7D7"; }

.mdi-login:before {
  content: "\F342"; }

.mdi-login-variant:before {
  content: "\F5FC"; }

.mdi-logout:before {
  content: "\F343"; }

.mdi-logout-variant:before {
  content: "\F5FD"; }

.mdi-looks:before {
  content: "\F344"; }

.mdi-loop:before {
  content: "\F6EA"; }

.mdi-loupe:before {
  content: "\F345"; }

.mdi-lumx:before {
  content: "\F346"; }

.mdi-magnet:before {
  content: "\F347"; }

.mdi-magnet-on:before {
  content: "\F348"; }

.mdi-magnify:before {
  content: "\F349"; }

.mdi-magnify-minus:before {
  content: "\F34A"; }

.mdi-magnify-minus-outline:before {
  content: "\F6EB"; }

.mdi-magnify-plus:before {
  content: "\F34B"; }

.mdi-magnify-plus-outline:before {
  content: "\F6EC"; }

.mdi-mail-ru:before {
  content: "\F34C"; }

.mdi-mailbox:before {
  content: "\F6ED"; }

.mdi-map:before {
  content: "\F34D"; }

.mdi-map-marker:before {
  content: "\F34E"; }

.mdi-map-marker-circle:before {
  content: "\F34F"; }

.mdi-map-marker-minus:before {
  content: "\F650"; }

.mdi-map-marker-multiple:before {
  content: "\F350"; }

.mdi-map-marker-off:before {
  content: "\F351"; }

.mdi-map-marker-outline:before {
  content: "\F7D8"; }

.mdi-map-marker-plus:before {
  content: "\F651"; }

.mdi-map-marker-radius:before {
  content: "\F352"; }

.mdi-margin:before {
  content: "\F353"; }

.mdi-markdown:before {
  content: "\F354"; }

.mdi-marker:before {
  content: "\F652"; }

.mdi-marker-check:before {
  content: "\F355"; }

.mdi-martini:before {
  content: "\F356"; }

.mdi-material-ui:before {
  content: "\F357"; }

.mdi-math-compass:before {
  content: "\F358"; }

.mdi-matrix:before {
  content: "\F628"; }

.mdi-maxcdn:before {
  content: "\F359"; }

.mdi-medical-bag:before {
  content: "\F6EE"; }

.mdi-medium:before {
  content: "\F35A"; }

.mdi-memory:before {
  content: "\F35B"; }

.mdi-menu:before {
  content: "\F35C"; }

.mdi-menu-down:before {
  content: "\F35D"; }

.mdi-menu-down-outline:before {
  content: "\F6B5"; }

.mdi-menu-left:before {
  content: "\F35E"; }

.mdi-menu-right:before {
  content: "\F35F"; }

.mdi-menu-up:before {
  content: "\F360"; }

.mdi-menu-up-outline:before {
  content: "\F6B6"; }

.mdi-message:before {
  content: "\F361"; }

.mdi-message-alert:before {
  content: "\F362"; }

.mdi-message-bulleted:before {
  content: "\F6A1"; }

.mdi-message-bulleted-off:before {
  content: "\F6A2"; }

.mdi-message-draw:before {
  content: "\F363"; }

.mdi-message-image:before {
  content: "\F364"; }

.mdi-message-outline:before {
  content: "\F365"; }

.mdi-message-plus:before {
  content: "\F653"; }

.mdi-message-processing:before {
  content: "\F366"; }

.mdi-message-reply:before {
  content: "\F367"; }

.mdi-message-reply-text:before {
  content: "\F368"; }

.mdi-message-settings:before {
  content: "\F6EF"; }

.mdi-message-settings-variant:before {
  content: "\F6F0"; }

.mdi-message-text:before {
  content: "\F369"; }

.mdi-message-text-outline:before {
  content: "\F36A"; }

.mdi-message-video:before {
  content: "\F36B"; }

.mdi-meteor:before {
  content: "\F629"; }

.mdi-metronome:before {
  content: "\F7D9"; }

.mdi-metronome-tick:before {
  content: "\F7DA"; }

.mdi-micro-sd:before {
  content: "\F7DB"; }

.mdi-microphone:before {
  content: "\F36C"; }

.mdi-microphone-off:before {
  content: "\F36D"; }

.mdi-microphone-outline:before {
  content: "\F36E"; }

.mdi-microphone-settings:before {
  content: "\F36F"; }

.mdi-microphone-variant:before {
  content: "\F370"; }

.mdi-microphone-variant-off:before {
  content: "\F371"; }

.mdi-microscope:before {
  content: "\F654"; }

.mdi-microsoft:before {
  content: "\F372"; }

.mdi-minecraft:before {
  content: "\F373"; }

.mdi-minus:before {
  content: "\F374"; }

.mdi-minus-box:before {
  content: "\F375"; }

.mdi-minus-box-outline:before {
  content: "\F6F1"; }

.mdi-minus-circle:before {
  content: "\F376"; }

.mdi-minus-circle-outline:before {
  content: "\F377"; }

.mdi-minus-network:before {
  content: "\F378"; }

.mdi-mixcloud:before {
  content: "\F62A"; }

.mdi-mixer:before {
  content: "\F7DC"; }

.mdi-monitor:before {
  content: "\F379"; }

.mdi-monitor-multiple:before {
  content: "\F37A"; }

.mdi-more:before {
  content: "\F37B"; }

.mdi-motorbike:before {
  content: "\F37C"; }

.mdi-mouse:before {
  content: "\F37D"; }

.mdi-mouse-off:before {
  content: "\F37E"; }

.mdi-mouse-variant:before {
  content: "\F37F"; }

.mdi-mouse-variant-off:before {
  content: "\F380"; }

.mdi-move-resize:before {
  content: "\F655"; }

.mdi-move-resize-variant:before {
  content: "\F656"; }

.mdi-movie:before {
  content: "\F381"; }

.mdi-movie-roll:before {
  content: "\F7DD"; }

.mdi-multiplication:before {
  content: "\F382"; }

.mdi-multiplication-box:before {
  content: "\F383"; }

.mdi-mushroom:before {
  content: "\F7DE"; }

.mdi-mushroom-outline:before {
  content: "\F7DF"; }

.mdi-music:before {
  content: "\F759"; }

.mdi-music-box:before {
  content: "\F384"; }

.mdi-music-box-outline:before {
  content: "\F385"; }

.mdi-music-circle:before {
  content: "\F386"; }

.mdi-music-note:before {
  content: "\F387"; }

.mdi-music-note-bluetooth:before {
  content: "\F5FE"; }

.mdi-music-note-bluetooth-off:before {
  content: "\F5FF"; }

.mdi-music-note-eighth:before {
  content: "\F388"; }

.mdi-music-note-half:before {
  content: "\F389"; }

.mdi-music-note-off:before {
  content: "\F38A"; }

.mdi-music-note-quarter:before {
  content: "\F38B"; }

.mdi-music-note-sixteenth:before {
  content: "\F38C"; }

.mdi-music-note-whole:before {
  content: "\F38D"; }

.mdi-music-off:before {
  content: "\F75A"; }

.mdi-nature:before {
  content: "\F38E"; }

.mdi-nature-people:before {
  content: "\F38F"; }

.mdi-navigation:before {
  content: "\F390"; }

.mdi-near-me:before {
  content: "\F5CD"; }

.mdi-needle:before {
  content: "\F391"; }

.mdi-nest-protect:before {
  content: "\F392"; }

.mdi-nest-thermostat:before {
  content: "\F393"; }

.mdi-netflix:before {
  content: "\F745"; }

.mdi-network:before {
  content: "\F6F2"; }

.mdi-new-box:before {
  content: "\F394"; }

.mdi-newspaper:before {
  content: "\F395"; }

.mdi-nfc:before {
  content: "\F396"; }

.mdi-nfc-tap:before {
  content: "\F397"; }

.mdi-nfc-variant:before {
  content: "\F398"; }

.mdi-ninja:before {
  content: "\F773"; }

.mdi-nintendo-switch:before {
  content: "\F7E0"; }

.mdi-nodejs:before {
  content: "\F399"; }

.mdi-note:before {
  content: "\F39A"; }

.mdi-note-multiple:before {
  content: "\F6B7"; }

.mdi-note-multiple-outline:before {
  content: "\F6B8"; }

.mdi-note-outline:before {
  content: "\F39B"; }

.mdi-note-plus:before {
  content: "\F39C"; }

.mdi-note-plus-outline:before {
  content: "\F39D"; }

.mdi-note-text:before {
  content: "\F39E"; }

.mdi-notebook:before {
  content: "\F82D"; }

.mdi-notification-clear-all:before {
  content: "\F39F"; }

.mdi-npm:before {
  content: "\F6F6"; }

.mdi-nuke:before {
  content: "\F6A3"; }

.mdi-null:before {
  content: "\F7E1"; }

.mdi-numeric:before {
  content: "\F3A0"; }

.mdi-numeric-0-box:before {
  content: "\F3A1"; }

.mdi-numeric-0-box-multiple-outline:before {
  content: "\F3A2"; }

.mdi-numeric-0-box-outline:before {
  content: "\F3A3"; }

.mdi-numeric-1-box:before {
  content: "\F3A4"; }

.mdi-numeric-1-box-multiple-outline:before {
  content: "\F3A5"; }

.mdi-numeric-1-box-outline:before {
  content: "\F3A6"; }

.mdi-numeric-2-box:before {
  content: "\F3A7"; }

.mdi-numeric-2-box-multiple-outline:before {
  content: "\F3A8"; }

.mdi-numeric-2-box-outline:before {
  content: "\F3A9"; }

.mdi-numeric-3-box:before {
  content: "\F3AA"; }

.mdi-numeric-3-box-multiple-outline:before {
  content: "\F3AB"; }

.mdi-numeric-3-box-outline:before {
  content: "\F3AC"; }

.mdi-numeric-4-box:before {
  content: "\F3AD"; }

.mdi-numeric-4-box-multiple-outline:before {
  content: "\F3AE"; }

.mdi-numeric-4-box-outline:before {
  content: "\F3AF"; }

.mdi-numeric-5-box:before {
  content: "\F3B0"; }

.mdi-numeric-5-box-multiple-outline:before {
  content: "\F3B1"; }

.mdi-numeric-5-box-outline:before {
  content: "\F3B2"; }

.mdi-numeric-6-box:before {
  content: "\F3B3"; }

.mdi-numeric-6-box-multiple-outline:before {
  content: "\F3B4"; }

.mdi-numeric-6-box-outline:before {
  content: "\F3B5"; }

.mdi-numeric-7-box:before {
  content: "\F3B6"; }

.mdi-numeric-7-box-multiple-outline:before {
  content: "\F3B7"; }

.mdi-numeric-7-box-outline:before {
  content: "\F3B8"; }

.mdi-numeric-8-box:before {
  content: "\F3B9"; }

.mdi-numeric-8-box-multiple-outline:before {
  content: "\F3BA"; }

.mdi-numeric-8-box-outline:before {
  content: "\F3BB"; }

.mdi-numeric-9-box:before {
  content: "\F3BC"; }

.mdi-numeric-9-box-multiple-outline:before {
  content: "\F3BD"; }

.mdi-numeric-9-box-outline:before {
  content: "\F3BE"; }

.mdi-numeric-9-plus-box:before {
  content: "\F3BF"; }

.mdi-numeric-9-plus-box-multiple-outline:before {
  content: "\F3C0"; }

.mdi-numeric-9-plus-box-outline:before {
  content: "\F3C1"; }

.mdi-nut:before {
  content: "\F6F7"; }

.mdi-nutrition:before {
  content: "\F3C2"; }

.mdi-oar:before {
  content: "\F67B"; }

.mdi-octagon:before {
  content: "\F3C3"; }

.mdi-octagon-outline:before {
  content: "\F3C4"; }

.mdi-octagram:before {
  content: "\F6F8"; }

.mdi-octagram-outline:before {
  content: "\F774"; }

.mdi-odnoklassniki:before {
  content: "\F3C5"; }

.mdi-office:before {
  content: "\F3C6"; }

.mdi-oil:before {
  content: "\F3C7"; }

.mdi-oil-temperature:before {
  content: "\F3C8"; }

.mdi-omega:before {
  content: "\F3C9"; }

.mdi-onedrive:before {
  content: "\F3CA"; }

.mdi-onenote:before {
  content: "\F746"; }

.mdi-opacity:before {
  content: "\F5CC"; }

.mdi-open-in-app:before {
  content: "\F3CB"; }

.mdi-open-in-new:before {
  content: "\F3CC"; }

.mdi-openid:before {
  content: "\F3CD"; }

.mdi-opera:before {
  content: "\F3CE"; }

.mdi-orbit:before {
  content: "\F018"; }

.mdi-ornament:before {
  content: "\F3CF"; }

.mdi-ornament-variant:before {
  content: "\F3D0"; }

.mdi-owl:before {
  content: "\F3D2"; }

.mdi-package:before {
  content: "\F3D3"; }

.mdi-package-down:before {
  content: "\F3D4"; }

.mdi-package-up:before {
  content: "\F3D5"; }

.mdi-package-variant:before {
  content: "\F3D6"; }

.mdi-package-variant-closed:before {
  content: "\F3D7"; }

.mdi-page-first:before {
  content: "\F600"; }

.mdi-page-last:before {
  content: "\F601"; }

.mdi-page-layout-body:before {
  content: "\F6F9"; }

.mdi-page-layout-footer:before {
  content: "\F6FA"; }

.mdi-page-layout-header:before {
  content: "\F6FB"; }

.mdi-page-layout-sidebar-left:before {
  content: "\F6FC"; }

.mdi-page-layout-sidebar-right:before {
  content: "\F6FD"; }

.mdi-palette:before {
  content: "\F3D8"; }

.mdi-palette-advanced:before {
  content: "\F3D9"; }

.mdi-panda:before {
  content: "\F3DA"; }

.mdi-pandora:before {
  content: "\F3DB"; }

.mdi-panorama:before {
  content: "\F3DC"; }

.mdi-panorama-fisheye:before {
  content: "\F3DD"; }

.mdi-panorama-horizontal:before {
  content: "\F3DE"; }

.mdi-panorama-vertical:before {
  content: "\F3DF"; }

.mdi-panorama-wide-angle:before {
  content: "\F3E0"; }

.mdi-paper-cut-vertical:before {
  content: "\F3E1"; }

.mdi-paperclip:before {
  content: "\F3E2"; }

.mdi-parking:before {
  content: "\F3E3"; }

.mdi-passport:before {
  content: "\F7E2"; }

.mdi-pause:before {
  content: "\F3E4"; }

.mdi-pause-circle:before {
  content: "\F3E5"; }

.mdi-pause-circle-outline:before {
  content: "\F3E6"; }

.mdi-pause-octagon:before {
  content: "\F3E7"; }

.mdi-pause-octagon-outline:before {
  content: "\F3E8"; }

.mdi-paw:before {
  content: "\F3E9"; }

.mdi-paw-off:before {
  content: "\F657"; }

.mdi-pen:before {
  content: "\F3EA"; }

.mdi-pencil:before {
  content: "\F3EB"; }

.mdi-pencil-box:before {
  content: "\F3EC"; }

.mdi-pencil-box-outline:before {
  content: "\F3ED"; }

.mdi-pencil-circle:before {
  content: "\F6FE"; }

.mdi-pencil-circle-outline:before {
  content: "\F775"; }

.mdi-pencil-lock:before {
  content: "\F3EE"; }

.mdi-pencil-off:before {
  content: "\F3EF"; }

.mdi-pentagon:before {
  content: "\F6FF"; }

.mdi-pentagon-outline:before {
  content: "\F700"; }

.mdi-percent:before {
  content: "\F3F0"; }

.mdi-periodic-table-co2:before {
  content: "\F7E3"; }

.mdi-periscope:before {
  content: "\F747"; }

.mdi-pharmacy:before {
  content: "\F3F1"; }

.mdi-phone:before {
  content: "\F3F2"; }

.mdi-phone-bluetooth:before {
  content: "\F3F3"; }

.mdi-phone-classic:before {
  content: "\F602"; }

.mdi-phone-forward:before {
  content: "\F3F4"; }

.mdi-phone-hangup:before {
  content: "\F3F5"; }

.mdi-phone-in-talk:before {
  content: "\F3F6"; }

.mdi-phone-incoming:before {
  content: "\F3F7"; }

.mdi-phone-locked:before {
  content: "\F3F8"; }

.mdi-phone-log:before {
  content: "\F3F9"; }

.mdi-phone-minus:before {
  content: "\F658"; }

.mdi-phone-missed:before {
  content: "\F3FA"; }

.mdi-phone-outgoing:before {
  content: "\F3FB"; }

.mdi-phone-paused:before {
  content: "\F3FC"; }

.mdi-phone-plus:before {
  content: "\F659"; }

.mdi-phone-return:before {
  content: "\F82E"; }

.mdi-phone-settings:before {
  content: "\F3FD"; }

.mdi-phone-voip:before {
  content: "\F3FE"; }

.mdi-pi:before {
  content: "\F3FF"; }

.mdi-pi-box:before {
  content: "\F400"; }

.mdi-piano:before {
  content: "\F67C"; }

.mdi-pig:before {
  content: "\F401"; }

.mdi-pill:before {
  content: "\F402"; }

.mdi-pillar:before {
  content: "\F701"; }

.mdi-pin:before {
  content: "\F403"; }

.mdi-pin-off:before {
  content: "\F404"; }

.mdi-pine-tree:before {
  content: "\F405"; }

.mdi-pine-tree-box:before {
  content: "\F406"; }

.mdi-pinterest:before {
  content: "\F407"; }

.mdi-pinterest-box:before {
  content: "\F408"; }

.mdi-pipe:before {
  content: "\F7E4"; }

.mdi-pipe-disconnected:before {
  content: "\F7E5"; }

.mdi-pistol:before {
  content: "\F702"; }

.mdi-pizza:before {
  content: "\F409"; }

.mdi-plane-shield:before {
  content: "\F6BA"; }

.mdi-play:before {
  content: "\F40A"; }

.mdi-play-box-outline:before {
  content: "\F40B"; }

.mdi-play-circle:before {
  content: "\F40C"; }

.mdi-play-circle-outline:before {
  content: "\F40D"; }

.mdi-play-pause:before {
  content: "\F40E"; }

.mdi-play-protected-content:before {
  content: "\F40F"; }

.mdi-playlist-check:before {
  content: "\F5C7"; }

.mdi-playlist-minus:before {
  content: "\F410"; }

.mdi-playlist-play:before {
  content: "\F411"; }

.mdi-playlist-plus:before {
  content: "\F412"; }

.mdi-playlist-remove:before {
  content: "\F413"; }

.mdi-playstation:before {
  content: "\F414"; }

.mdi-plex:before {
  content: "\F6B9"; }

.mdi-plus:before {
  content: "\F415"; }

.mdi-plus-box:before {
  content: "\F416"; }

.mdi-plus-box-outline:before {
  content: "\F703"; }

.mdi-plus-circle:before {
  content: "\F417"; }

.mdi-plus-circle-multiple-outline:before {
  content: "\F418"; }

.mdi-plus-circle-outline:before {
  content: "\F419"; }

.mdi-plus-network:before {
  content: "\F41A"; }

.mdi-plus-one:before {
  content: "\F41B"; }

.mdi-plus-outline:before {
  content: "\F704"; }

.mdi-pocket:before {
  content: "\F41C"; }

.mdi-pokeball:before {
  content: "\F41D"; }

.mdi-poker-chip:before {
  content: "\F82F"; }

.mdi-polaroid:before {
  content: "\F41E"; }

.mdi-poll:before {
  content: "\F41F"; }

.mdi-poll-box:before {
  content: "\F420"; }

.mdi-polymer:before {
  content: "\F421"; }

.mdi-pool:before {
  content: "\F606"; }

.mdi-popcorn:before {
  content: "\F422"; }

.mdi-pot:before {
  content: "\F65A"; }

.mdi-pot-mix:before {
  content: "\F65B"; }

.mdi-pound:before {
  content: "\F423"; }

.mdi-pound-box:before {
  content: "\F424"; }

.mdi-power:before {
  content: "\F425"; }

.mdi-power-plug:before {
  content: "\F6A4"; }

.mdi-power-plug-off:before {
  content: "\F6A5"; }

.mdi-power-settings:before {
  content: "\F426"; }

.mdi-power-socket:before {
  content: "\F427"; }

.mdi-power-socket-eu:before {
  content: "\F7E6"; }

.mdi-power-socket-uk:before {
  content: "\F7E7"; }

.mdi-power-socket-us:before {
  content: "\F7E8"; }

.mdi-prescription:before {
  content: "\F705"; }

.mdi-presentation:before {
  content: "\F428"; }

.mdi-presentation-play:before {
  content: "\F429"; }

.mdi-printer:before {
  content: "\F42A"; }

.mdi-printer-3d:before {
  content: "\F42B"; }

.mdi-printer-alert:before {
  content: "\F42C"; }

.mdi-printer-settings:before {
  content: "\F706"; }

.mdi-priority-high:before {
  content: "\F603"; }

.mdi-priority-low:before {
  content: "\F604"; }

.mdi-professional-hexagon:before {
  content: "\F42D"; }

.mdi-projector:before {
  content: "\F42E"; }

.mdi-projector-screen:before {
  content: "\F42F"; }

.mdi-publish:before {
  content: "\F6A6"; }

.mdi-pulse:before {
  content: "\F430"; }

.mdi-puzzle:before {
  content: "\F431"; }

.mdi-qqchat:before {
  content: "\F605"; }

.mdi-qrcode:before {
  content: "\F432"; }

.mdi-qrcode-scan:before {
  content: "\F433"; }

.mdi-quadcopter:before {
  content: "\F434"; }

.mdi-quality-high:before {
  content: "\F435"; }

.mdi-quicktime:before {
  content: "\F436"; }

.mdi-radar:before {
  content: "\F437"; }

.mdi-radiator:before {
  content: "\F438"; }

.mdi-radio:before {
  content: "\F439"; }

.mdi-radio-handheld:before {
  content: "\F43A"; }

.mdi-radio-tower:before {
  content: "\F43B"; }

.mdi-radioactive:before {
  content: "\F43C"; }

.mdi-radiobox-blank:before {
  content: "\F43D"; }

.mdi-radiobox-marked:before {
  content: "\F43E"; }

.mdi-raspberrypi:before {
  content: "\F43F"; }

.mdi-ray-end:before {
  content: "\F440"; }

.mdi-ray-end-arrow:before {
  content: "\F441"; }

.mdi-ray-start:before {
  content: "\F442"; }

.mdi-ray-start-arrow:before {
  content: "\F443"; }

.mdi-ray-start-end:before {
  content: "\F444"; }

.mdi-ray-vertex:before {
  content: "\F445"; }

.mdi-react:before {
  content: "\F707"; }

.mdi-read:before {
  content: "\F447"; }

.mdi-receipt:before {
  content: "\F449"; }

.mdi-record:before {
  content: "\F44A"; }

.mdi-record-rec:before {
  content: "\F44B"; }

.mdi-recycle:before {
  content: "\F44C"; }

.mdi-reddit:before {
  content: "\F44D"; }

.mdi-redo:before {
  content: "\F44E"; }

.mdi-redo-variant:before {
  content: "\F44F"; }

.mdi-refresh:before {
  content: "\F450"; }

.mdi-regex:before {
  content: "\F451"; }

.mdi-relative-scale:before {
  content: "\F452"; }

.mdi-reload:before {
  content: "\F453"; }

.mdi-remote:before {
  content: "\F454"; }

.mdi-rename-box:before {
  content: "\F455"; }

.mdi-reorder-horizontal:before {
  content: "\F687"; }

.mdi-reorder-vertical:before {
  content: "\F688"; }

.mdi-repeat:before {
  content: "\F456"; }

.mdi-repeat-off:before {
  content: "\F457"; }

.mdi-repeat-once:before {
  content: "\F458"; }

.mdi-replay:before {
  content: "\F459"; }

.mdi-reply:before {
  content: "\F45A"; }

.mdi-reply-all:before {
  content: "\F45B"; }

.mdi-reproduction:before {
  content: "\F45C"; }

.mdi-resize-bottom-right:before {
  content: "\F45D"; }

.mdi-responsive:before {
  content: "\F45E"; }

.mdi-restart:before {
  content: "\F708"; }

.mdi-restore:before {
  content: "\F6A7"; }

.mdi-rewind:before {
  content: "\F45F"; }

.mdi-rewind-outline:before {
  content: "\F709"; }

.mdi-rhombus:before {
  content: "\F70A"; }

.mdi-rhombus-outline:before {
  content: "\F70B"; }

.mdi-ribbon:before {
  content: "\F460"; }

.mdi-rice:before {
  content: "\F7E9"; }

.mdi-ring:before {
  content: "\F7EA"; }

.mdi-road:before {
  content: "\F461"; }

.mdi-road-variant:before {
  content: "\F462"; }

.mdi-robot:before {
  content: "\F6A8"; }

.mdi-rocket:before {
  content: "\F463"; }

.mdi-roomba:before {
  content: "\F70C"; }

.mdi-rotate-3d:before {
  content: "\F464"; }

.mdi-rotate-left:before {
  content: "\F465"; }

.mdi-rotate-left-variant:before {
  content: "\F466"; }

.mdi-rotate-right:before {
  content: "\F467"; }

.mdi-rotate-right-variant:before {
  content: "\F468"; }

.mdi-rounded-corner:before {
  content: "\F607"; }

.mdi-router-wireless:before {
  content: "\F469"; }

.mdi-routes:before {
  content: "\F46A"; }

.mdi-rowing:before {
  content: "\F608"; }

.mdi-rss:before {
  content: "\F46B"; }

.mdi-rss-box:before {
  content: "\F46C"; }

.mdi-ruler:before {
  content: "\F46D"; }

.mdi-run:before {
  content: "\F70D"; }

.mdi-run-fast:before {
  content: "\F46E"; }

.mdi-sale:before {
  content: "\F46F"; }

.mdi-sass:before {
  content: "\F7EB"; }

.mdi-satellite:before {
  content: "\F470"; }

.mdi-satellite-variant:before {
  content: "\F471"; }

.mdi-saxophone:before {
  content: "\F609"; }

.mdi-scale:before {
  content: "\F472"; }

.mdi-scale-balance:before {
  content: "\F5D1"; }

.mdi-scale-bathroom:before {
  content: "\F473"; }

.mdi-scanner:before {
  content: "\F6AA"; }

.mdi-school:before {
  content: "\F474"; }

.mdi-screen-rotation:before {
  content: "\F475"; }

.mdi-screen-rotation-lock:before {
  content: "\F476"; }

.mdi-screwdriver:before {
  content: "\F477"; }

.mdi-script:before {
  content: "\F478"; }

.mdi-sd:before {
  content: "\F479"; }

.mdi-seal:before {
  content: "\F47A"; }

.mdi-search-web:before {
  content: "\F70E"; }

.mdi-seat-flat:before {
  content: "\F47B"; }

.mdi-seat-flat-angled:before {
  content: "\F47C"; }

.mdi-seat-individual-suite:before {
  content: "\F47D"; }

.mdi-seat-legroom-extra:before {
  content: "\F47E"; }

.mdi-seat-legroom-normal:before {
  content: "\F47F"; }

.mdi-seat-legroom-reduced:before {
  content: "\F480"; }

.mdi-seat-recline-extra:before {
  content: "\F481"; }

.mdi-seat-recline-normal:before {
  content: "\F482"; }

.mdi-security:before {
  content: "\F483"; }

.mdi-security-home:before {
  content: "\F689"; }

.mdi-security-network:before {
  content: "\F484"; }

.mdi-select:before {
  content: "\F485"; }

.mdi-select-all:before {
  content: "\F486"; }

.mdi-select-inverse:before {
  content: "\F487"; }

.mdi-select-off:before {
  content: "\F488"; }

.mdi-selection:before {
  content: "\F489"; }

.mdi-selection-off:before {
  content: "\F776"; }

.mdi-send:before {
  content: "\F48A"; }

.mdi-send-secure:before {
  content: "\F7EC"; }

.mdi-serial-port:before {
  content: "\F65C"; }

.mdi-server:before {
  content: "\F48B"; }

.mdi-server-minus:before {
  content: "\F48C"; }

.mdi-server-network:before {
  content: "\F48D"; }

.mdi-server-network-off:before {
  content: "\F48E"; }

.mdi-server-off:before {
  content: "\F48F"; }

.mdi-server-plus:before {
  content: "\F490"; }

.mdi-server-remove:before {
  content: "\F491"; }

.mdi-server-security:before {
  content: "\F492"; }

.mdi-set-all:before {
  content: "\F777"; }

.mdi-set-center:before {
  content: "\F778"; }

.mdi-set-center-right:before {
  content: "\F779"; }

.mdi-set-left:before {
  content: "\F77A"; }

.mdi-set-left-center:before {
  content: "\F77B"; }

.mdi-set-left-right:before {
  content: "\F77C"; }

.mdi-set-none:before {
  content: "\F77D"; }

.mdi-set-right:before {
  content: "\F77E"; }

.mdi-settings:before {
  content: "\F493"; }

.mdi-settings-box:before {
  content: "\F494"; }

.mdi-shape:before {
  content: "\F830"; }

.mdi-shape-circle-plus:before {
  content: "\F65D"; }

.mdi-shape-outline:before {
  content: "\F831"; }

.mdi-shape-plus:before {
  content: "\F495"; }

.mdi-shape-polygon-plus:before {
  content: "\F65E"; }

.mdi-shape-rectangle-plus:before {
  content: "\F65F"; }

.mdi-shape-square-plus:before {
  content: "\F660"; }

.mdi-share:before {
  content: "\F496"; }

.mdi-share-variant:before {
  content: "\F497"; }

.mdi-shield:before {
  content: "\F498"; }

.mdi-shield-half-full:before {
  content: "\F77F"; }

.mdi-shield-outline:before {
  content: "\F499"; }

.mdi-ship-wheel:before {
  content: "\F832"; }

.mdi-shopping:before {
  content: "\F49A"; }

.mdi-shopping-music:before {
  content: "\F49B"; }

.mdi-shovel:before {
  content: "\F70F"; }

.mdi-shovel-off:before {
  content: "\F710"; }

.mdi-shredder:before {
  content: "\F49C"; }

.mdi-shuffle:before {
  content: "\F49D"; }

.mdi-shuffle-disabled:before {
  content: "\F49E"; }

.mdi-shuffle-variant:before {
  content: "\F49F"; }

.mdi-sigma:before {
  content: "\F4A0"; }

.mdi-sigma-lower:before {
  content: "\F62B"; }

.mdi-sign-caution:before {
  content: "\F4A1"; }

.mdi-sign-direction:before {
  content: "\F780"; }

.mdi-sign-text:before {
  content: "\F781"; }

.mdi-signal:before {
  content: "\F4A2"; }

.mdi-signal-2g:before {
  content: "\F711"; }

.mdi-signal-3g:before {
  content: "\F712"; }

.mdi-signal-4g:before {
  content: "\F713"; }

.mdi-signal-hspa:before {
  content: "\F714"; }

.mdi-signal-hspa-plus:before {
  content: "\F715"; }

.mdi-signal-off:before {
  content: "\F782"; }

.mdi-signal-variant:before {
  content: "\F60A"; }

.mdi-silverware:before {
  content: "\F4A3"; }

.mdi-silverware-fork:before {
  content: "\F4A4"; }

.mdi-silverware-spoon:before {
  content: "\F4A5"; }

.mdi-silverware-variant:before {
  content: "\F4A6"; }

.mdi-sim:before {
  content: "\F4A7"; }

.mdi-sim-alert:before {
  content: "\F4A8"; }

.mdi-sim-off:before {
  content: "\F4A9"; }

.mdi-sitemap:before {
  content: "\F4AA"; }

.mdi-skip-backward:before {
  content: "\F4AB"; }

.mdi-skip-forward:before {
  content: "\F4AC"; }

.mdi-skip-next:before {
  content: "\F4AD"; }

.mdi-skip-next-circle:before {
  content: "\F661"; }

.mdi-skip-next-circle-outline:before {
  content: "\F662"; }

.mdi-skip-previous:before {
  content: "\F4AE"; }

.mdi-skip-previous-circle:before {
  content: "\F663"; }

.mdi-skip-previous-circle-outline:before {
  content: "\F664"; }

.mdi-skull:before {
  content: "\F68B"; }

.mdi-skype:before {
  content: "\F4AF"; }

.mdi-skype-business:before {
  content: "\F4B0"; }

.mdi-slack:before {
  content: "\F4B1"; }

.mdi-sleep:before {
  content: "\F4B2"; }

.mdi-sleep-off:before {
  content: "\F4B3"; }

.mdi-smoking:before {
  content: "\F4B4"; }

.mdi-smoking-off:before {
  content: "\F4B5"; }

.mdi-snapchat:before {
  content: "\F4B6"; }

.mdi-snowflake:before {
  content: "\F716"; }

.mdi-snowman:before {
  content: "\F4B7"; }

.mdi-soccer:before {
  content: "\F4B8"; }

.mdi-soccer-field:before {
  content: "\F833"; }

.mdi-sofa:before {
  content: "\F4B9"; }

.mdi-solid:before {
  content: "\F68C"; }

.mdi-sort:before {
  content: "\F4BA"; }

.mdi-sort-alphabetical:before {
  content: "\F4BB"; }

.mdi-sort-ascending:before {
  content: "\F4BC"; }

.mdi-sort-descending:before {
  content: "\F4BD"; }

.mdi-sort-numeric:before {
  content: "\F4BE"; }

.mdi-sort-variant:before {
  content: "\F4BF"; }

.mdi-soundcloud:before {
  content: "\F4C0"; }

.mdi-source-branch:before {
  content: "\F62C"; }

.mdi-source-commit:before {
  content: "\F717"; }

.mdi-source-commit-end:before {
  content: "\F718"; }

.mdi-source-commit-end-local:before {
  content: "\F719"; }

.mdi-source-commit-local:before {
  content: "\F71A"; }

.mdi-source-commit-next-local:before {
  content: "\F71B"; }

.mdi-source-commit-start:before {
  content: "\F71C"; }

.mdi-source-commit-start-next-local:before {
  content: "\F71D"; }

.mdi-source-fork:before {
  content: "\F4C1"; }

.mdi-source-merge:before {
  content: "\F62D"; }

.mdi-source-pull:before {
  content: "\F4C2"; }

.mdi-soy-sauce:before {
  content: "\F7ED"; }

.mdi-speaker:before {
  content: "\F4C3"; }

.mdi-speaker-off:before {
  content: "\F4C4"; }

.mdi-speaker-wireless:before {
  content: "\F71E"; }

.mdi-speedometer:before {
  content: "\F4C5"; }

.mdi-spellcheck:before {
  content: "\F4C6"; }

.mdi-spotify:before {
  content: "\F4C7"; }

.mdi-spotlight:before {
  content: "\F4C8"; }

.mdi-spotlight-beam:before {
  content: "\F4C9"; }

.mdi-spray:before {
  content: "\F665"; }

.mdi-square:before {
  content: "\F763"; }

.mdi-square-inc:before {
  content: "\F4CA"; }

.mdi-square-inc-cash:before {
  content: "\F4CB"; }

.mdi-square-outline:before {
  content: "\F762"; }

.mdi-square-root:before {
  content: "\F783"; }

.mdi-stack-overflow:before {
  content: "\F4CC"; }

.mdi-stackexchange:before {
  content: "\F60B"; }

.mdi-stadium:before {
  content: "\F71F"; }

.mdi-stairs:before {
  content: "\F4CD"; }

.mdi-standard-definition:before {
  content: "\F7EE"; }

.mdi-star:before {
  content: "\F4CE"; }

.mdi-star-circle:before {
  content: "\F4CF"; }

.mdi-star-half:before {
  content: "\F4D0"; }

.mdi-star-off:before {
  content: "\F4D1"; }

.mdi-star-outline:before {
  content: "\F4D2"; }

.mdi-steam:before {
  content: "\F4D3"; }

.mdi-steering:before {
  content: "\F4D4"; }

.mdi-step-backward:before {
  content: "\F4D5"; }

.mdi-step-backward-2:before {
  content: "\F4D6"; }

.mdi-step-forward:before {
  content: "\F4D7"; }

.mdi-step-forward-2:before {
  content: "\F4D8"; }

.mdi-stethoscope:before {
  content: "\F4D9"; }

.mdi-sticker:before {
  content: "\F5D0"; }

.mdi-sticker-emoji:before {
  content: "\F784"; }

.mdi-stocking:before {
  content: "\F4DA"; }

.mdi-stop:before {
  content: "\F4DB"; }

.mdi-stop-circle:before {
  content: "\F666"; }

.mdi-stop-circle-outline:before {
  content: "\F667"; }

.mdi-store:before {
  content: "\F4DC"; }

.mdi-store-24-hour:before {
  content: "\F4DD"; }

.mdi-stove:before {
  content: "\F4DE"; }

.mdi-subdirectory-arrow-left:before {
  content: "\F60C"; }

.mdi-subdirectory-arrow-right:before {
  content: "\F60D"; }

.mdi-subway:before {
  content: "\F6AB"; }

.mdi-subway-variant:before {
  content: "\F4DF"; }

.mdi-summit:before {
  content: "\F785"; }

.mdi-sunglasses:before {
  content: "\F4E0"; }

.mdi-surround-sound:before {
  content: "\F5C5"; }

.mdi-surround-sound-2-0:before {
  content: "\F7EF"; }

.mdi-surround-sound-3-1:before {
  content: "\F7F0"; }

.mdi-surround-sound-5-1:before {
  content: "\F7F1"; }

.mdi-surround-sound-7-1:before {
  content: "\F7F2"; }

.mdi-svg:before {
  content: "\F720"; }

.mdi-swap-horizontal:before {
  content: "\F4E1"; }

.mdi-swap-vertical:before {
  content: "\F4E2"; }

.mdi-swim:before {
  content: "\F4E3"; }

.mdi-switch:before {
  content: "\F4E4"; }

.mdi-sword:before {
  content: "\F4E5"; }

.mdi-sword-cross:before {
  content: "\F786"; }

.mdi-sync:before {
  content: "\F4E6"; }

.mdi-sync-alert:before {
  content: "\F4E7"; }

.mdi-sync-off:before {
  content: "\F4E8"; }

.mdi-tab:before {
  content: "\F4E9"; }

.mdi-tab-plus:before {
  content: "\F75B"; }

.mdi-tab-unselected:before {
  content: "\F4EA"; }

.mdi-table:before {
  content: "\F4EB"; }

.mdi-table-column:before {
  content: "\F834"; }

.mdi-table-column-plus-after:before {
  content: "\F4EC"; }

.mdi-table-column-plus-before:before {
  content: "\F4ED"; }

.mdi-table-column-remove:before {
  content: "\F4EE"; }

.mdi-table-column-width:before {
  content: "\F4EF"; }

.mdi-table-edit:before {
  content: "\F4F0"; }

.mdi-table-large:before {
  content: "\F4F1"; }

.mdi-table-of-contents:before {
  content: "\F835"; }

.mdi-table-row:before {
  content: "\F836"; }

.mdi-table-row-height:before {
  content: "\F4F2"; }

.mdi-table-row-plus-after:before {
  content: "\F4F3"; }

.mdi-table-row-plus-before:before {
  content: "\F4F4"; }

.mdi-table-row-remove:before {
  content: "\F4F5"; }

.mdi-table-settings:before {
  content: "\F837"; }

.mdi-tablet:before {
  content: "\F4F6"; }

.mdi-tablet-android:before {
  content: "\F4F7"; }

.mdi-tablet-ipad:before {
  content: "\F4F8"; }

.mdi-taco:before {
  content: "\F761"; }

.mdi-tag:before {
  content: "\F4F9"; }

.mdi-tag-faces:before {
  content: "\F4FA"; }

.mdi-tag-heart:before {
  content: "\F68A"; }

.mdi-tag-multiple:before {
  content: "\F4FB"; }

.mdi-tag-outline:before {
  content: "\F4FC"; }

.mdi-tag-plus:before {
  content: "\F721"; }

.mdi-tag-remove:before {
  content: "\F722"; }

.mdi-tag-text-outline:before {
  content: "\F4FD"; }

.mdi-target:before {
  content: "\F4FE"; }

.mdi-taxi:before {
  content: "\F4FF"; }

.mdi-teamviewer:before {
  content: "\F500"; }

.mdi-telegram:before {
  content: "\F501"; }

.mdi-television:before {
  content: "\F502"; }

.mdi-television-box:before {
  content: "\F838"; }

.mdi-television-classic:before {
  content: "\F7F3"; }

.mdi-television-classic-off:before {
  content: "\F839"; }

.mdi-television-guide:before {
  content: "\F503"; }

.mdi-television-off:before {
  content: "\F83A"; }

.mdi-temperature-celsius:before {
  content: "\F504"; }

.mdi-temperature-fahrenheit:before {
  content: "\F505"; }

.mdi-temperature-kelvin:before {
  content: "\F506"; }

.mdi-tennis:before {
  content: "\F507"; }

.mdi-tent:before {
  content: "\F508"; }

.mdi-terrain:before {
  content: "\F509"; }

.mdi-test-tube:before {
  content: "\F668"; }

.mdi-text-shadow:before {
  content: "\F669"; }

.mdi-text-to-speech:before {
  content: "\F50A"; }

.mdi-text-to-speech-off:before {
  content: "\F50B"; }

.mdi-textbox:before {
  content: "\F60E"; }

.mdi-textbox-password:before {
  content: "\F7F4"; }

.mdi-texture:before {
  content: "\F50C"; }

.mdi-theater:before {
  content: "\F50D"; }

.mdi-theme-light-dark:before {
  content: "\F50E"; }

.mdi-thermometer:before {
  content: "\F50F"; }

.mdi-thermometer-lines:before {
  content: "\F510"; }

.mdi-thought-bubble:before {
  content: "\F7F5"; }

.mdi-thought-bubble-outline:before {
  content: "\F7F6"; }

.mdi-thumb-down:before {
  content: "\F511"; }

.mdi-thumb-down-outline:before {
  content: "\F512"; }

.mdi-thumb-up:before {
  content: "\F513"; }

.mdi-thumb-up-outline:before {
  content: "\F514"; }

.mdi-thumbs-up-down:before {
  content: "\F515"; }

.mdi-ticket:before {
  content: "\F516"; }

.mdi-ticket-account:before {
  content: "\F517"; }

.mdi-ticket-confirmation:before {
  content: "\F518"; }

.mdi-ticket-percent:before {
  content: "\F723"; }

.mdi-tie:before {
  content: "\F519"; }

.mdi-tilde:before {
  content: "\F724"; }

.mdi-timelapse:before {
  content: "\F51A"; }

.mdi-timer:before {
  content: "\F51B"; }

.mdi-timer-10:before {
  content: "\F51C"; }

.mdi-timer-3:before {
  content: "\F51D"; }

.mdi-timer-off:before {
  content: "\F51E"; }

.mdi-timer-sand:before {
  content: "\F51F"; }

.mdi-timer-sand-empty:before {
  content: "\F6AC"; }

.mdi-timer-sand-full:before {
  content: "\F78B"; }

.mdi-timetable:before {
  content: "\F520"; }

.mdi-toggle-switch:before {
  content: "\F521"; }

.mdi-toggle-switch-off:before {
  content: "\F522"; }

.mdi-tooltip:before {
  content: "\F523"; }

.mdi-tooltip-edit:before {
  content: "\F524"; }

.mdi-tooltip-image:before {
  content: "\F525"; }

.mdi-tooltip-outline:before {
  content: "\F526"; }

.mdi-tooltip-outline-plus:before {
  content: "\F527"; }

.mdi-tooltip-text:before {
  content: "\F528"; }

.mdi-tooth:before {
  content: "\F529"; }

.mdi-tor:before {
  content: "\F52A"; }

.mdi-tower-beach:before {
  content: "\F680"; }

.mdi-tower-fire:before {
  content: "\F681"; }

.mdi-towing:before {
  content: "\F83B"; }

.mdi-trackpad:before {
  content: "\F7F7"; }

.mdi-traffic-light:before {
  content: "\F52B"; }

.mdi-train:before {
  content: "\F52C"; }

.mdi-tram:before {
  content: "\F52D"; }

.mdi-transcribe:before {
  content: "\F52E"; }

.mdi-transcribe-close:before {
  content: "\F52F"; }

.mdi-transfer:before {
  content: "\F530"; }

.mdi-transit-transfer:before {
  content: "\F6AD"; }

.mdi-translate:before {
  content: "\F5CA"; }

.mdi-treasure-chest:before {
  content: "\F725"; }

.mdi-tree:before {
  content: "\F531"; }

.mdi-trello:before {
  content: "\F532"; }

.mdi-trending-down:before {
  content: "\F533"; }

.mdi-trending-neutral:before {
  content: "\F534"; }

.mdi-trending-up:before {
  content: "\F535"; }

.mdi-triangle:before {
  content: "\F536"; }

.mdi-triangle-outline:before {
  content: "\F537"; }

.mdi-trophy:before {
  content: "\F538"; }

.mdi-trophy-award:before {
  content: "\F539"; }

.mdi-trophy-outline:before {
  content: "\F53A"; }

.mdi-trophy-variant:before {
  content: "\F53B"; }

.mdi-trophy-variant-outline:before {
  content: "\F53C"; }

.mdi-truck:before {
  content: "\F53D"; }

.mdi-truck-delivery:before {
  content: "\F53E"; }

.mdi-truck-fast:before {
  content: "\F787"; }

.mdi-truck-trailer:before {
  content: "\F726"; }

.mdi-tshirt-crew:before {
  content: "\F53F"; }

.mdi-tshirt-v:before {
  content: "\F540"; }

.mdi-tumblr:before {
  content: "\F541"; }

.mdi-tumblr-reblog:before {
  content: "\F542"; }

.mdi-tune:before {
  content: "\F62E"; }

.mdi-tune-vertical:before {
  content: "\F66A"; }

.mdi-twitch:before {
  content: "\F543"; }

.mdi-twitter:before {
  content: "\F544"; }

.mdi-twitter-box:before {
  content: "\F545"; }

.mdi-twitter-circle:before {
  content: "\F546"; }

.mdi-twitter-retweet:before {
  content: "\F547"; }

.mdi-uber:before {
  content: "\F748"; }

.mdi-ubuntu:before {
  content: "\F548"; }

.mdi-ultra-high-definition:before {
  content: "\F7F8"; }

.mdi-umbraco:before {
  content: "\F549"; }

.mdi-umbrella:before {
  content: "\F54A"; }

.mdi-umbrella-outline:before {
  content: "\F54B"; }

.mdi-undo:before {
  content: "\F54C"; }

.mdi-undo-variant:before {
  content: "\F54D"; }

.mdi-unfold-less-horizontal:before {
  content: "\F54E"; }

.mdi-unfold-less-vertical:before {
  content: "\F75F"; }

.mdi-unfold-more-horizontal:before {
  content: "\F54F"; }

.mdi-unfold-more-vertical:before {
  content: "\F760"; }

.mdi-ungroup:before {
  content: "\F550"; }

.mdi-unity:before {
  content: "\F6AE"; }

.mdi-untappd:before {
  content: "\F551"; }

.mdi-update:before {
  content: "\F6AF"; }

.mdi-upload:before {
  content: "\F552"; }

.mdi-upload-multiple:before {
  content: "\F83C"; }

.mdi-upload-network:before {
  content: "\F6F5"; }

.mdi-usb:before {
  content: "\F553"; }

.mdi-van-passenger:before {
  content: "\F7F9"; }

.mdi-van-utility:before {
  content: "\F7FA"; }

.mdi-vanish:before {
  content: "\F7FB"; }

.mdi-vector-arrange-above:before {
  content: "\F554"; }

.mdi-vector-arrange-below:before {
  content: "\F555"; }

.mdi-vector-circle:before {
  content: "\F556"; }

.mdi-vector-circle-variant:before {
  content: "\F557"; }

.mdi-vector-combine:before {
  content: "\F558"; }

.mdi-vector-curve:before {
  content: "\F559"; }

.mdi-vector-difference:before {
  content: "\F55A"; }

.mdi-vector-difference-ab:before {
  content: "\F55B"; }

.mdi-vector-difference-ba:before {
  content: "\F55C"; }

.mdi-vector-intersection:before {
  content: "\F55D"; }

.mdi-vector-line:before {
  content: "\F55E"; }

.mdi-vector-point:before {
  content: "\F55F"; }

.mdi-vector-polygon:before {
  content: "\F560"; }

.mdi-vector-polyline:before {
  content: "\F561"; }

.mdi-vector-radius:before {
  content: "\F749"; }

.mdi-vector-rectangle:before {
  content: "\F5C6"; }

.mdi-vector-selection:before {
  content: "\F562"; }

.mdi-vector-square:before {
  content: "\F001"; }

.mdi-vector-triangle:before {
  content: "\F563"; }

.mdi-vector-union:before {
  content: "\F564"; }

.mdi-venmo:before {
  content: "\F578"; }

.mdi-verified:before {
  content: "\F565"; }

.mdi-vibrate:before {
  content: "\F566"; }

.mdi-video:before {
  content: "\F567"; }

.mdi-video-3d:before {
  content: "\F7FC"; }

.mdi-video-4k-box:before {
  content: "\F83D"; }

.mdi-video-input-antenna:before {
  content: "\F83E"; }

.mdi-video-input-component:before {
  content: "\F83F"; }

.mdi-video-input-hdmi:before {
  content: "\F840"; }

.mdi-video-input-svideo:before {
  content: "\F841"; }

.mdi-video-off:before {
  content: "\F568"; }

.mdi-video-switch:before {
  content: "\F569"; }

.mdi-view-agenda:before {
  content: "\F56A"; }

.mdi-view-array:before {
  content: "\F56B"; }

.mdi-view-carousel:before {
  content: "\F56C"; }

.mdi-view-column:before {
  content: "\F56D"; }

.mdi-view-dashboard:before {
  content: "\F56E"; }

.mdi-view-dashboard-variant:before {
  content: "\F842"; }

.mdi-view-day:before {
  content: "\F56F"; }

.mdi-view-grid:before {
  content: "\F570"; }

.mdi-view-headline:before {
  content: "\F571"; }

.mdi-view-list:before {
  content: "\F572"; }

.mdi-view-module:before {
  content: "\F573"; }

.mdi-view-parallel:before {
  content: "\F727"; }

.mdi-view-quilt:before {
  content: "\F574"; }

.mdi-view-sequential:before {
  content: "\F728"; }

.mdi-view-stream:before {
  content: "\F575"; }

.mdi-view-week:before {
  content: "\F576"; }

.mdi-vimeo:before {
  content: "\F577"; }

.mdi-violin:before {
  content: "\F60F"; }

.mdi-visualstudio:before {
  content: "\F610"; }

.mdi-vk:before {
  content: "\F579"; }

.mdi-vk-box:before {
  content: "\F57A"; }

.mdi-vk-circle:before {
  content: "\F57B"; }

.mdi-vlc:before {
  content: "\F57C"; }

.mdi-voice:before {
  content: "\F5CB"; }

.mdi-voicemail:before {
  content: "\F57D"; }

.mdi-volume-high:before {
  content: "\F57E"; }

.mdi-volume-low:before {
  content: "\F57F"; }

.mdi-volume-medium:before {
  content: "\F580"; }

.mdi-volume-minus:before {
  content: "\F75D"; }

.mdi-volume-mute:before {
  content: "\F75E"; }

.mdi-volume-off:before {
  content: "\F581"; }

.mdi-volume-plus:before {
  content: "\F75C"; }

.mdi-vpn:before {
  content: "\F582"; }

.mdi-vuejs:before {
  content: "\F843"; }

.mdi-walk:before {
  content: "\F583"; }

.mdi-wall:before {
  content: "\F7FD"; }

.mdi-wallet:before {
  content: "\F584"; }

.mdi-wallet-giftcard:before {
  content: "\F585"; }

.mdi-wallet-membership:before {
  content: "\F586"; }

.mdi-wallet-travel:before {
  content: "\F587"; }

.mdi-wan:before {
  content: "\F588"; }

.mdi-washing-machine:before {
  content: "\F729"; }

.mdi-watch:before {
  content: "\F589"; }

.mdi-watch-export:before {
  content: "\F58A"; }

.mdi-watch-import:before {
  content: "\F58B"; }

.mdi-watch-vibrate:before {
  content: "\F6B0"; }

.mdi-water:before {
  content: "\F58C"; }

.mdi-water-off:before {
  content: "\F58D"; }

.mdi-water-percent:before {
  content: "\F58E"; }

.mdi-water-pump:before {
  content: "\F58F"; }

.mdi-watermark:before {
  content: "\F612"; }

.mdi-waves:before {
  content: "\F78C"; }

.mdi-weather-cloudy:before {
  content: "\F590"; }

.mdi-weather-fog:before {
  content: "\F591"; }

.mdi-weather-hail:before {
  content: "\F592"; }

.mdi-weather-lightning:before {
  content: "\F593"; }

.mdi-weather-lightning-rainy:before {
  content: "\F67D"; }

.mdi-weather-night:before {
  content: "\F594"; }

.mdi-weather-partlycloudy:before {
  content: "\F595"; }

.mdi-weather-pouring:before {
  content: "\F596"; }

.mdi-weather-rainy:before {
  content: "\F597"; }

.mdi-weather-snowy:before {
  content: "\F598"; }

.mdi-weather-snowy-rainy:before {
  content: "\F67E"; }

.mdi-weather-sunny:before {
  content: "\F599"; }

.mdi-weather-sunset:before {
  content: "\F59A"; }

.mdi-weather-sunset-down:before {
  content: "\F59B"; }

.mdi-weather-sunset-up:before {
  content: "\F59C"; }

.mdi-weather-windy:before {
  content: "\F59D"; }

.mdi-weather-windy-variant:before {
  content: "\F59E"; }

.mdi-web:before {
  content: "\F59F"; }

.mdi-webcam:before {
  content: "\F5A0"; }

.mdi-webhook:before {
  content: "\F62F"; }

.mdi-webpack:before {
  content: "\F72A"; }

.mdi-wechat:before {
  content: "\F611"; }

.mdi-weight:before {
  content: "\F5A1"; }

.mdi-weight-kilogram:before {
  content: "\F5A2"; }

.mdi-whatsapp:before {
  content: "\F5A3"; }

.mdi-wheelchair-accessibility:before {
  content: "\F5A4"; }

.mdi-white-balance-auto:before {
  content: "\F5A5"; }

.mdi-white-balance-incandescent:before {
  content: "\F5A6"; }

.mdi-white-balance-iridescent:before {
  content: "\F5A7"; }

.mdi-white-balance-sunny:before {
  content: "\F5A8"; }

.mdi-widgets:before {
  content: "\F72B"; }

.mdi-wifi:before {
  content: "\F5A9"; }

.mdi-wifi-off:before {
  content: "\F5AA"; }

.mdi-wii:before {
  content: "\F5AB"; }

.mdi-wiiu:before {
  content: "\F72C"; }

.mdi-wikipedia:before {
  content: "\F5AC"; }

.mdi-window-close:before {
  content: "\F5AD"; }

.mdi-window-closed:before {
  content: "\F5AE"; }

.mdi-window-maximize:before {
  content: "\F5AF"; }

.mdi-window-minimize:before {
  content: "\F5B0"; }

.mdi-window-open:before {
  content: "\F5B1"; }

.mdi-window-restore:before {
  content: "\F5B2"; }

.mdi-windows:before {
  content: "\F5B3"; }

.mdi-wordpress:before {
  content: "\F5B4"; }

.mdi-worker:before {
  content: "\F5B5"; }

.mdi-wrap:before {
  content: "\F5B6"; }

.mdi-wrench:before {
  content: "\F5B7"; }

.mdi-wunderlist:before {
  content: "\F5B8"; }

.mdi-xamarin:before {
  content: "\F844"; }

.mdi-xamarin-outline:before {
  content: "\F845"; }

.mdi-xaml:before {
  content: "\F673"; }

.mdi-xbox:before {
  content: "\F5B9"; }

.mdi-xbox-controller:before {
  content: "\F5BA"; }

.mdi-xbox-controller-battery-alert:before {
  content: "\F74A"; }

.mdi-xbox-controller-battery-empty:before {
  content: "\F74B"; }

.mdi-xbox-controller-battery-full:before {
  content: "\F74C"; }

.mdi-xbox-controller-battery-low:before {
  content: "\F74D"; }

.mdi-xbox-controller-battery-medium:before {
  content: "\F74E"; }

.mdi-xbox-controller-battery-unknown:before {
  content: "\F74F"; }

.mdi-xbox-controller-off:before {
  content: "\F5BB"; }

.mdi-xda:before {
  content: "\F5BC"; }

.mdi-xing:before {
  content: "\F5BD"; }

.mdi-xing-box:before {
  content: "\F5BE"; }

.mdi-xing-circle:before {
  content: "\F5BF"; }

.mdi-xml:before {
  content: "\F5C0"; }

.mdi-xmpp:before {
  content: "\F7FE"; }

.mdi-yammer:before {
  content: "\F788"; }

.mdi-yeast:before {
  content: "\F5C1"; }

.mdi-yelp:before {
  content: "\F5C2"; }

.mdi-yin-yang:before {
  content: "\F67F"; }

.mdi-youtube-creator-studio:before {
  content: "\F846"; }

.mdi-youtube-gaming:before {
  content: "\F847"; }

.mdi-youtube-play:before {
  content: "\F5C3"; }

.mdi-youtube-tv:before {
  content: "\F448"; }

.mdi-zip-box:before {
  content: "\F5C4"; }

.mdi-blank:before {
  content: "\F68C";
  visibility: hidden; }

.mdi-18px.mdi-set, .mdi-18px.mdi:before {
  font-size: 18px; }

.mdi-24px.mdi-set, .mdi-24px.mdi:before {
  font-size: 24px; }

.mdi-36px.mdi-set, .mdi-36px.mdi:before {
  font-size: 36px; }

.mdi-48px.mdi-set, .mdi-48px.mdi:before {
  font-size: 48px; }

.mdi-dark:before {
  color: rgba(0, 0, 0, 0.54); }

.mdi-dark.mdi-inactive:before {
  color: rgba(0, 0, 0, 0.26); }

.mdi-light:before {
  color: white; }

.mdi-light.mdi-inactive:before {
  color: rgba(255, 255, 255, 0.3); }

.mdi-rotate-45 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(45deg);
            transform: scaleX(-1) rotate(45deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(45deg);
            -ms-transform: rotate(45deg);
            transform: scaleY(-1) rotate(45deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-45:before {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg); }

.mdi-rotate-90 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(90deg);
            transform: scaleX(-1) rotate(90deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(90deg);
            -ms-transform: rotate(90deg);
            transform: scaleY(-1) rotate(90deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-90:before {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg); }

.mdi-rotate-135 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(135deg);
            transform: scaleX(-1) rotate(135deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(135deg);
            -ms-transform: rotate(135deg);
            transform: scaleY(-1) rotate(135deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-135:before {
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg); }

.mdi-rotate-180 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(180deg);
            transform: scaleX(-1) rotate(180deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(180deg);
            -ms-transform: rotate(180deg);
            transform: scaleY(-1) rotate(180deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-180:before {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg); }

.mdi-rotate-225 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(225deg);
            transform: scaleX(-1) rotate(225deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(225deg);
            -ms-transform: rotate(225deg);
            transform: scaleY(-1) rotate(225deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-225:before {
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg); }

.mdi-rotate-270 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(270deg);
            transform: scaleX(-1) rotate(270deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(270deg);
            -ms-transform: rotate(270deg);
            transform: scaleY(-1) rotate(270deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-270:before {
    -webkit-transform: rotate(270deg);
    transform: rotate(270deg); }

.mdi-rotate-315 {
  /*
        // Not included in production
        &.mdi-flip-h:before {
            -webkit-transform: scaleX(-1) rotate(315deg);
            transform: scaleX(-1) rotate(315deg);
            filter: FlipH;
            -ms-filter: "FlipH";
        }
        &.mdi-flip-v:before {
            -webkit-transform: scaleY(-1) rotate(315deg);
            -ms-transform: rotate(315deg);
            transform: scaleY(-1) rotate(315deg);
            filter: FlipV;
            -ms-filter: "FlipV";
        }
        */ }
  .mdi-rotate-315:before {
    -webkit-transform: rotate(315deg);
    transform: rotate(315deg); }

.mdi-flip-h:before {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
  -webkit-filter: FlipH;
          filter: FlipH;
  -ms-filter: "FlipH"; }

.mdi-flip-v:before {
  -webkit-transform: scaleY(-1);
  transform: scaleY(-1);
  -webkit-filter: FlipV;
          filter: FlipV;
  -ms-filter: "FlipV"; }

.mdi-spin:before {
  -webkit-animation: mdi-spin 2s infinite linear;
  animation: mdi-spin 2s infinite linear; }

@-webkit-keyframes mdi-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg); } }

@keyframes mdi-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg); } }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Thin.eot");
  src: url("fonts/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Thin.woff2") format("woff2"), url("fonts/Roboto-Thin.woff") format("woff"), url("fonts/Roboto-Thin.ttf") format("truetype"), url("fonts/Roboto-Thin.svg#Roboto") format("svg");
  font-weight: 100;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Thin";
  src: url("fonts/Roboto-Thin.eot");
  src: url("fonts/Roboto-Thin.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Thin.woff2") format("woff2"), url("fonts/Roboto-Thin.woff") format("woff"), url("fonts/Roboto-Thin.ttf") format("truetype"), url("fonts/Roboto-Thin.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-ThinItalic.eot");
  src: url("fonts/Roboto-ThinItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-ThinItalic.woff2") format("woff2"), url("fonts/Roboto-ThinItalic.woff") format("woff"), url("fonts/Roboto-ThinItalic.ttf") format("truetype"), url("fonts/Roboto-ThinItalic.svg#Roboto") format("svg");
  font-weight: 100;
  font-style: italic; }

@font-face {
  font-family: "Roboto-ThinItalic";
  src: url("fonts/Roboto-ThinItalic.eot");
  src: url("fonts/Roboto-ThinItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-ThinItalic.woff2") format("woff2"), url("fonts/Roboto-ThinItalic.woff") format("woff"), url("fonts/Roboto-ThinItalic.ttf") format("truetype"), url("fonts/Roboto-ThinItalic.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Light.eot");
  src: url("fonts/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Light.woff2") format("woff2"), url("fonts/Roboto-Light.woff") format("woff"), url("fonts/Roboto-Light.ttf") format("truetype"), url("fonts/Roboto-Light.svg#Roboto") format("svg");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Light";
  src: url("fonts/Roboto-Light.eot");
  src: url("fonts/Roboto-Light.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Light.woff2") format("woff2"), url("fonts/Roboto-Light.woff") format("woff"), url("fonts/Roboto-Light.ttf") format("truetype"), url("fonts/Roboto-Light.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-LightItalic.eot");
  src: url("fonts/Roboto-LightItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-LightItalic.woff2") format("woff2"), url("fonts/Roboto-LightItalic.woff") format("woff"), url("fonts/Roboto-LightItalic.ttf") format("truetype"), url("fonts/Roboto-LightItalic.svg#Roboto") format("svg");
  font-weight: 300;
  font-style: italic; }

@font-face {
  font-family: "Roboto-LightItalic";
  src: url("fonts/Roboto-LightItalic.eot");
  src: url("fonts/Roboto-LightItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-LightItalic.woff2") format("woff2"), url("fonts/Roboto-LightItalic.woff") format("woff"), url("fonts/Roboto-LightItalic.ttf") format("truetype"), url("fonts/Roboto-LightItalic.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Regular.eot");
  src: url("fonts/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Regular.woff2") format("woff2"), url("fonts/Roboto-Regular.woff") format("woff"), url("fonts/Roboto-Regular.ttf") format("truetype"), url("fonts/Roboto-Regular.svg#Roboto") format("svg");
  font-weight: 400;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Regular";
  src: url("fonts/Roboto-Regular.eot");
  src: url("fonts/Roboto-Regular.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Regular.woff2") format("woff2"), url("fonts/Roboto-Regular.woff") format("woff"), url("fonts/Roboto-Regular.ttf") format("truetype"), url("fonts/Roboto-Regular.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-RegularItalic.eot");
  src: url("fonts/Roboto-RegularItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-RegularItalic.woff2") format("woff2"), url("fonts/Roboto-RegularItalic.woff") format("woff"), url("fonts/Roboto-RegularItalic.ttf") format("truetype"), url("fonts/Roboto-RegularItalic.svg#Roboto") format("svg");
  font-weight: 400;
  font-style: italic; }

@font-face {
  font-family: "Roboto-RegularItalic";
  src: url("fonts/Roboto-RegularItalic.eot");
  src: url("fonts/Roboto-RegularItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-RegularItalic.woff2") format("woff2"), url("fonts/Roboto-RegularItalic.woff") format("woff"), url("fonts/Roboto-RegularItalic.ttf") format("truetype"), url("fonts/Roboto-RegularItalic.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Medium.eot");
  src: url("fonts/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Medium.woff2") format("woff2"), url("fonts/Roboto-Medium.woff") format("woff"), url("fonts/Roboto-Medium.ttf") format("truetype"), url("fonts/Roboto-Medium.svg#Roboto") format("svg");
  font-weight: 500;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Medium";
  src: url("fonts/Roboto-Medium.eot");
  src: url("fonts/Roboto-Medium.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Medium.woff2") format("woff2"), url("fonts/Roboto-Medium.woff") format("woff"), url("fonts/Roboto-Medium.ttf") format("truetype"), url("fonts/Roboto-Medium.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-MediumItalic.eot");
  src: url("fonts/Roboto-MediumItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-MediumItalic.woff2") format("woff2"), url("fonts/Roboto-MediumItalic.woff") format("woff"), url("fonts/Roboto-MediumItalic.ttf") format("truetype"), url("fonts/Roboto-MediumItalic.svg#Roboto") format("svg");
  font-weight: 500;
  font-style: italic; }

@font-face {
  font-family: "Roboto-MediumItalic";
  src: url("fonts/Roboto-MediumItalic.eot");
  src: url("fonts/Roboto-MediumItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-MediumItalic.woff2") format("woff2"), url("fonts/Roboto-MediumItalic.woff") format("woff"), url("fonts/Roboto-MediumItalic.ttf") format("truetype"), url("fonts/Roboto-MediumItalic.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Bold.eot");
  src: url("fonts/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Bold.woff2") format("woff2"), url("fonts/Roboto-Bold.woff") format("woff"), url("fonts/Roboto-Bold.ttf") format("truetype"), url("fonts/Roboto-Bold.svg#Roboto") format("svg");
  font-weight: 700;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Bold";
  src: url("fonts/Roboto-Bold.eot");
  src: url("fonts/Roboto-Bold.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Bold.woff2") format("woff2"), url("fonts/Roboto-Bold.woff") format("woff"), url("fonts/Roboto-Bold.ttf") format("truetype"), url("fonts/Roboto-Bold.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-BoldItalic.eot");
  src: url("fonts/Roboto-BoldItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-BoldItalic.woff2") format("woff2"), url("fonts/Roboto-BoldItalic.woff") format("woff"), url("fonts/Roboto-BoldItalic.ttf") format("truetype"), url("fonts/Roboto-BoldItalic.svg#Roboto") format("svg");
  font-weight: 700;
  font-style: italic; }

@font-face {
  font-family: "Roboto-BoldItalic";
  src: url("fonts/Roboto-BoldItalic.eot");
  src: url("fonts/Roboto-BoldItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-BoldItalic.woff2") format("woff2"), url("fonts/Roboto-BoldItalic.woff") format("woff"), url("fonts/Roboto-BoldItalic.ttf") format("truetype"), url("fonts/Roboto-BoldItalic.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-Black.eot");
  src: url("fonts/Roboto-Black.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Black.woff2") format("woff2"), url("fonts/Roboto-Black.woff") format("woff"), url("fonts/Roboto-Black.ttf") format("truetype"), url("fonts/Roboto-Black.svg#Roboto") format("svg");
  font-weight: 900;
  font-style: normal; }

@font-face {
  font-family: "Roboto-Black";
  src: url("fonts/Roboto-Black.eot");
  src: url("fonts/Roboto-Black.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-Black.woff2") format("woff2"), url("fonts/Roboto-Black.woff") format("woff"), url("fonts/Roboto-Black.ttf") format("truetype"), url("fonts/Roboto-Black.svg#Roboto") format("svg"); }

@font-face {
  font-family: 'Roboto';
  src: url("fonts/Roboto-BlackItalic.eot");
  src: url("fonts/Roboto-BlackItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-BlackItalic.woff2") format("woff2"), url("fonts/Roboto-BlackItalic.woff") format("woff"), url("fonts/Roboto-BlackItalic.ttf") format("truetype"), url("fonts/Roboto-BlackItalic.svg#Roboto") format("svg");
  font-weight: 900;
  font-style: italic; }

@font-face {
  font-family: "Roboto-BlackItalic";
  src: url("fonts/Roboto-BlackItalic.eot");
  src: url("fonts/Roboto-BlackItalic.eot?#iefix") format("embedded-opentype"), url("fonts/Roboto-BlackItalic.woff2") format("woff2"), url("fonts/Roboto-BlackItalic.woff") format("woff"), url("fonts/Roboto-BlackItalic.ttf") format("truetype"), url("fonts/Roboto-BlackItalic.svg#Roboto") format("svg"); }

body {
  font-family: Roboto, sans-serif;
  font-weight: 300;
  font-size: 16px;
  overflow-x: hidden;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }

h1 {
  font-family: inherit;
  font-size: 36px;
  font-weight: 300;
  line-height: 42px;
  padding-top: 28px;
  padding-bottom: 6px;
  margin: 0;
  clear: both; }

.sub-headline {
  color: #aaa;
  font-size: 22px;
  padding-top: 6px;
  padding-bottom: 24px;
  margin: 0; }

h2 {
  font-family: inherit;
  font-size: 24px;
  line-height: 28px;
  font-weight: 400;
  padding-bottom: 3px;
  margin-top: 18px;
  margin-bottom: 0;
  margin-left: 0;
  margin-bottom: 0;
  clear: both; }

h3 {
  font-family: inherit;
  font-size: 20px;
  line-height: 26px;
  font-weight: 400;
  padding-top: 4px;
  margin: 0;
  clear: both; }

h4 {
  font-family: inherit;
  font-size: 18px;
  line-height: 26px;
  font-weight: 400;
  margin-top: 8px;
  margin-bottom: 2px;
  clear: both; }

p, li, div.code {
  font-family: inherit;
  font-size: 18px;
  font-weight: 300;
  line-height: 28px; }

p, iframe, div.code {
  margin-bottom: 16px; }

iframe {
  margin-top: 8px; }

mark {
  background-color: rgb(255,238,88); }

div.code {
  font-family: monospace; }

div.code, pre.highlight {
  overflow: auto; }

kbd {
  display: inline-block;
  padding: 3px 8px;
  margin: 0px 3px;
  font-size: 15px;
  line-height: 14px;
  color: #444d56;
  vertical-align: middle;
  background-color: #fafbfc;
  border: solid 1px #c6cbd1;
  border-bottom-color: #959da5;
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 #959da5; }

*, *::before, *::after {
  box-sizing: border-box; }

a:not([role=button]) {
  color: rgb(33,150,243);
  text-decoration: none;
  font-weight: normal; }

.container {
  margin: 0 auto;
  padding: 16px;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1; }

video::cue {
  opacity: 0.8; }

@media (min-width: 768px) {
  .container {
    max-width: 820px; } }

@media (min-width: 1200px) {
  .container {
    max-width: 1170px; } }

header {
  display: block;
  background-color: rgb(33,150,243);
  z-index: 1000; }
  header .container {
    padding-top: 0;
    padding-bottom: 0; }
    header .container > div {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-align-items: center;
          -ms-flex-align: center;
              align-items: center;
      height: 72px; }
      header .container > div .logotype {
        background-image: url("media/calcapp.svg"), none;
        background-repeat: no-repeat;
        width: 130px;
        height: 34px;
        margin-left: 10px; }
      header .container > div .links {
        display: none;
        padding-left: 37px; }
        header .container > div .links a {
          font-size: 19px;
          color: white;
          height: 72px;
          line-height: 72px;
          min-width: unset;
          padding: 0 18px; }
          header .container > div .links a:hover {
            border-bottom: none;
            background-color: rgba(255, 255, 255, 0.2); }
          header .container > div .links a:active {
            background-color: rgba(255, 255, 255, 0.7); }
          header .container > div .links a.active {
            background-color: #55aef6; }
          header .container > div .links a > span:first-child {
            position: relative;
            top: 2px; }
          header .container > div .links a .mdl-ripple {
            background: white; }
      header .container > div .space-before-sign-in-link {
        -webkit-flex: 1;
            -ms-flex: 1;
                flex: 1; }
      header .container > div #menu-button-for-phones {
        color: white;
        margin-right: 10px; }
      header .container > div .mdl-menu__container ul {
        padding: 0; }

body:not(.no-fixed-header) header {
  position: fixed;
  width: 100%; }

body:not(.no-fixed-header) > .container {
  padding-top: 72px; }

footer {
  width: 100%;
  text-align: right; }

@media (min-width: 768px) {
  .links {
    display: block !important; }
  #menu-button-for-phones {
    display: none; } }

.content-page img, .content-page video, .content-page figure {
  width: 100%;
  margin-bottom: 25px;
  margin-top: 10px; }

.content-page img:not(.no-shadow),
.content-page video:not(.no-shadow),
.content-page figure:not(.no-shadow):not(.simple) {
  box-shadow: 3px 6px 8px 0px #ccc; }

.content-page figure {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 30px; }
  .content-page figure:not(.simple) {
    padding: 16px;
    background-color: #f9f9f9; }
  .content-page figure.simple {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; }
  .content-page figure pre {
    margin: 0; }

.content-page h2:before {
  display: block;
  content: " ";
  margin-top: -80px;
  height: 80px;
  visibility: hidden; }

.content-page .horizontal-images {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }

.content-page blockquote {
  background: #f9f9f9;
  border-left: 10px solid #ccc;
  font-style: normal;
  margin: 1.5em 10px;
  padding-top: 0.7em;
  padding-left: 25px;
  padding-right: 25px;
  padding-bottom: 15px;
  quotes: "“" "”" "‘" "’"; }
  .content-page blockquote:before {
    content: open-quote;
    color: #ccc;
    font-size: 5em;
    line-height: 0.1em;
    margin-right: 0.25em;
    vertical-align: -0.4em;
    left: -0.35em;
    top: 0.1em; }
  .content-page blockquote:after {
    content: "";
    margin-left: 0; }

.content-page blockquote blockquote {
  border-left: 6px solid rgb(33,150,243);
  margin: 0.5em 0; }
  .content-page blockquote blockquote.plain {
    border-color: #ccc; }
  .content-page blockquote blockquote:before {
    content: ""; }

.data-table {
  width: 100%;
  margin-bottom: 8px; }
  .data-table th {
    text-align: left;
    padding-right: 20px; }
    .data-table th i.mdi {
      font-size: 20px; }
  .data-table td {
    vertical-align: top;
    padding-right: 16px; }
  .data-table td:last-of-type {
    padding-right: 0; }
  .data-table tr.indent td:first-of-type {
    padding-left: 1.5em; }

@media (min-width: 768px) {
  .content-page blockquote:before {
    left: -60px;
    top: 12px; }
  .content-page .horizontal-images a:not(:last-of-type) {
    margin-right: 25px; }
  .content-page img {
    width: 75%; }
  .content-page .small-image {
    width: 250px; }
  .content-page .small-horizontal-image {
    width: 390px; }
  .content-page .image-320px {
    width: 320px; }
  .content-page .medium-image {
    width: 60%; }
  .content-page .large-image {
    width: 100%; }
  .content-page .data-table {
    width: auto; }
    .content-page .data-table td {
      padding-right: 48px; }
    .content-page .data-table td:last-of-type {
      padding: 0; } }

.root-page header .container > div a.logotype {
  margin-left: 0; }

@media (min-width: 768px) {
  .root-page .mdl-button {
    font-size: 18px;
    line-height: 40px;
    height: 40px; }
  .root-page header {
    padding-top: 30px; }
    .root-page header .container > div a.logotype {
      margin-left: 15px; }
    .root-page header .container > div .links {
      padding-left: 0; }
    .root-page header .container > div .space-between-logotype-and-links {
      -webkit-flex: 1;
          -ms-flex: 1;
              flex: 1; }
    .root-page header .container > div .space-before-sign-in-link {
      -webkit-flex: none;
          -ms-flex: none;
              flex: none; } }

.root-page .introductory-section {
  background-color: rgb(33,150,243);
  color: white; }
  .root-page .introductory-section .container {
    padding: 0; }
  .root-page .introductory-section .text-column .introductory-text {
    padding: 16px; }
    .root-page .introductory-section .text-column .introductory-text h1 {
      font-size: 36px;
      line-height: 48px;
      margin-top: 0;
      margin-bottom: 12px; }
    .root-page .introductory-section .text-column .introductory-text p {
      font-size: 24px;
      line-height: 34px; }
    .root-page .introductory-section .text-column .introductory-text .introductory-buttons {
      margin-top: 32px;
      margin-bottom: 32px; }
      .root-page .introductory-section .text-column .introductory-text .introductory-buttons > div .mdl-button {
        width: 100%;
        margin-bottom: 16px; }
      .root-page .introductory-section .text-column .introductory-text .introductory-buttons > div:last-of-type .mdl-button {
        margin-bottom: 0; }
      .root-page .introductory-section .text-column .introductory-text .introductory-buttons .fine-print {
        position: relative;
        top: -4px;
        text-align: center;
        margin-top: 0;
        margin-bottom: 20px; }
  .root-page .introductory-section .phone-column {
    position: relative;
    margin-bottom: 40px; }
    .root-page .introductory-section .phone-column .phone {
      position: relative;
      pointer-events: none;
      top: 0;
      left: 4px;
      width: calc(100% - 8px);
      height: auto; }
    .root-page .introductory-section .phone-column .iframe-background {
      position: absolute;
      background-color: rgb(194,24,91);
      top: 2.9%;
      left: 7.3%;
      width: 86%;
      height: 94.1%; }
    .root-page .introductory-section .phone-column iframe {
      position: absolute;
      border: none;
      top: 6.3%;
      left: 7.3%;
      width: 86%;
      height: 90.7%;
      margin-top: 0;
      margin-bottom: 0;
      margin-left: 0; }

@media (min-width: 768px) {
  .root-page .introductory-section {
    padding-top: 40px; }
    .root-page .introductory-section .text-column {
      position: relative;
      left: -44px;
      padding-left: 0; }
      .root-page .introductory-section .text-column .introductory-text {
        padding-left: 0;
        padding-right: 0;
        padding-top: 25px;
        padding-bottom: 0;
        width: 400px; }
        .root-page .introductory-section .text-column .introductory-text h1 {
          font-size: 44px;
          line-height: 56px;
          margin-bottom: 24px; }
        .root-page .introductory-section .text-column .introductory-text .introductory-buttons {
          display: -webkit-flex;
          display: -ms-flexbox;
          display: flex;
          margin-top: 36px;
          margin-bottom: 0; }
          .root-page .introductory-section .text-column .introductory-text .introductory-buttons > div {
            display: inline-block !important;
            padding-right: 10px; }
            .root-page .introductory-section .text-column .introductory-text .introductory-buttons > div .mdl-button {
              margin-bottom: 0; }
            .root-page .introductory-section .text-column .introductory-text .introductory-buttons > div:last-of-type {
              padding-right: 0; }
          .root-page .introductory-section .text-column .introductory-text .introductory-buttons .fine-print {
            margin-top: 8px;
            margin-bottom: 0;
            top: 0; }
    .root-page .introductory-section .phone-column {
      height: 620px;
      margin-bottom: 0; }
      .root-page .introductory-section .phone-column * {
        margin-right: 60px; }
      .root-page .introductory-section .phone-column .phone {
        position: absolute;
        top: 0;
        left: auto;
        right: 10px;
        height: 580px;
        width: 290px; }
      .root-page .introductory-section .phone-column .iframe-background {
        top: 18px;
        left: auto;
        right: 28px;
        width: 254px;
        height: 545px; }
      .root-page .introductory-section .phone-column iframe {
        top: 37px;
        left: auto;
        right: 28px;
        width: 254px;
        height: 526px; } }

@media (min-width: 1200px) {
  .root-page .introductory-section .text-column {
    left: -30px; } }

.root-page .features-section {
  margin-top: 20px; }
  .root-page .features-section ul {
    list-style-type: none; }
    .root-page .features-section ul li .title {
      color: rgb(33,150,243);
      text-align: center;
      font-size: 28px;
      font-weight: 300; }
      .root-page .features-section ul li .title .icon {
        font-size: 54px;
        color: #666;
        width: 100px;
        height: 100px;
        display: table;
        margin: 0 auto 0 auto;
        padding-bottom: 10px;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
        cursor: default; }
        .root-page .features-section ul li .title .icon span {
          display: table-cell;
          vertical-align: middle;
          width: 100px;
          height: 100px; }
          .root-page .features-section ul li .title .icon span img {
            width: 55px; }
    .root-page .features-section ul li .text {
      font-size: 20px;
      line-height: 30px;
      padding: 30px 19px;
      color: rgba(0, 0, 0, 0.54);
      text-align: center; }
  .root-page .features-section .reinforcing-statement {
    padding: 10px;
    font-size: 28px;
    line-height: 40px;
    text-align: center;
    font-style: italic;
    margin-top: 10px;
    margin-bottom: 20px; }

@media (min-width: 768px) {
  .root-page .features-section {
    margin-top: 80px;
    margin-bottom: 40px; } }

.root-page .calcapp-creator-section {
  text-align: center;
  margin-bottom: 30px; }
  .root-page .calcapp-creator-section .calcapp-creator-container {
    padding-left: 16px;
    padding-right: 16px; }
    .root-page .calcapp-creator-section .calcapp-creator-container h1 {
      margin-bottom: 6px; }
  .root-page .calcapp-creator-section p {
    margin-bottom: 50px; }
  .root-page .calcapp-creator-section img {
    padding-left: 10px;
    padding-right: 10px;
    height: auto;
    max-width: 100%; }
  .root-page .calcapp-creator-section .visible-small-device-portrait-orientation {
    display: none; }

@media (min-width: 1200px) {
  .root-page .calcapp-creator-section img {
    max-width: 1200px; } }

@media (min-width: 768px) {
  .root-page .calcapp-creator-section .calcapp-creator-container {
    margin: 0 auto;
    max-width: 520px; } }

@media screen and (max-device-width: 768px) and (orientation: portrait) {
  .root-page .calcapp-creator-section .visible-small-device-portrait-orientation {
    display: block;
    padding: 10px;
    padding-top: 20px; } }

.root-page .last-section {
  background-color: rgb(33,150,243);
  color: white;
  text-align: center; }
  .root-page .last-section .last-container {
    margin-top: 10px;
    padding-top: 20px;
    padding-left: 16px;
    padding-right: 16px; }
  .root-page .last-section h1 {
    margin-bottom: 8px; }
  .root-page .last-section .buttons {
    margin-top: 32px;
    margin-bottom: 32px; }
    .root-page .last-section .buttons > div .mdl-button {
      width: 100%;
      margin-bottom: 16px; }
    .root-page .last-section .buttons > div:last-of-type .mdl-button {
      margin-bottom: 0; }
  .root-page .last-section .social-links {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    margin-top: 35px;
    line-height: 38px;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .root-page .last-section .social-links a {
      color: white;
      font-size: 38px;
      margin-right: 10px; }
  .root-page .last-section footer {
    font-size: 12px;
    text-align: center;
    padding-top: 16px;
    padding-bottom: 12px;
    padding-right: 10px; }
    .root-page .last-section footer a {
      color: white;
      text-decoration: underline; }
    .root-page .last-section footer .container {
      padding: 0;
      margin-top: 0; }

@media (max-width: 767px) {
  .root-page .last-section button {
    width: 100% !important;
    margin-left: 0 !important; } }

@media (min-width: 768px) {
  .root-page .last-section .last-container {
    margin: 0 auto;
    max-width: 580px; }
  .root-page .last-section .container {
    margin-top: 50px;
    padding-bottom: 20px; }
  .root-page .last-section .buttons {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    margin-top: 36px;
    margin-bottom: 0;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .root-page .last-section .buttons > div {
      display: inline-block !important;
      padding-right: 10px; }
      .root-page .last-section .buttons > div .mdl-button {
        margin-bottom: 0; }
      .root-page .last-section .buttons > div:last-of-type {
        padding-right: 0; } }

.thanks-page {
  height: 100%;
  width: 100%;
  color: white; }
  .thanks-page div {
    color: white; }
  .thanks-page .center-block {
    margin: 0 auto; }
  .thanks-page #wrapper {
    background-color: rgb(33,150,243);
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    display: table; }
  .thanks-page #cell {
    display: table-cell;
    vertical-align: middle; }
  .thanks-page #container {
    max-width: 700px;
    margin: 0px auto;
    padding: 10px; }
  .thanks-page h1 {
    margin-bottom: 7px; }
  .thanks-page a {
    color: white; }
  .thanks-page #content {
    text-align: center; }
    .thanks-page #content h1 {
      padding-top: 40px; }
    .thanks-page #content p {
      margin-bottom: 40px; }
  .thanks-page .social-links {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    font-size: 55px;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    margin-top: 35px;
    line-height: 60px;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center; }
    .thanks-page .social-links a {
      color: white;
      margin-right: 10px; }
  .thanks-page footer {
    position: fixed;
    font-size: 13px;
    right: 10px;
    bottom: 7px; }
  .thanks-page .logo {
    background: url(media/calcapp.svg) no-repeat;
    background-size: 100%;
    width: 340px;
    height: 88px; }

.learn-page .main-container .navigation ul {
  list-style-type: none;
  padding-left: 20px; }
  .learn-page .main-container .navigation ul.outer {
    padding-left: 0; }
    .learn-page .main-container .navigation ul.outer a {
      color: black; }
      .learn-page .main-container .navigation ul.outer a:hover {
        color: rgb(33,150,243); }
  .learn-page .main-container .navigation ul li {
    line-height: 32px; }
    .learn-page .main-container .navigation ul li.active {
      font-weight: bold; }
    .learn-page .main-container .navigation ul li.top-level-choice {
      padding-top: 8px; }
    .learn-page .main-container .navigation ul li.services i.mdi {
      color: #aaa; }

.learn-page .main-container .social-links {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  font-size: 36px;
  line-height: 36px; }
  .learn-page .main-container .social-links div {
    margin: 0 2px; }
    .learn-page .main-container .social-links div a {
      color: #888; }
    .learn-page .main-container .social-links div:first-of-type {
      margin-left: 0; }
    .learn-page .main-container .social-links div:last-of-type {
      margin-right: 0; }

@media (min-width: 768px) {
  .learn-page div.navigation {
    position: fixed;
    left: auto;
    bottom: 0;
    top: 72px;
    width: 230px;
    overflow-y: auto; }
  .learn-page div.content {
    margin-top: 10px;
    margin-left: 270px;
    margin-right: 30px; }
  .learn-page .social-links {
    margin-top: 10px;
    margin-bottom: 10px; } }

.blog-index-page .excerpt {
  font-size: 18px;
  margin-bottom: 16px; }

.blog-index-page .container > .mdl-grid {
  margin-top: 40px; }

.blog-index-page .pagination {
  float: right; }

.blog-index-page .sidebar h1 {
  padding-top: 4px; }

.blog-post-page h1 {
  line-height: 1.3; }

.blog-post-page .excerpt {
  margin-bottom: 24px;
  margin-top: 25px;
  font-size: 22px;
  line-height: 27px;
  font-style: italic;
  color: #666;
  border-left: 5px solid rgb(194,24,91);
  padding-left: 25px; }

.blog-post-page .container > .mdl-grid {
  margin-top: 20px; }

.blog-post-page hr {
  margin-top: 22px;
  margin-bottom: 60px;
  overflow: visible;
  text-align: center;
  border: none; }
  .blog-post-page hr:before {
    content: "...";
    display: inline-block;
    font-weight: 400;
    font-style: italic;
    font-size: 30px;
    letter-spacing: .6em;
    color: rgba(0, 0, 0, 0.68); }

.blog-page ul.post-list {
  list-style-type: none;
  padding-left: 0; }
  .blog-page ul.post-list h2 {
    margin-bottom: 5px; }
    .blog-page ul.post-list h2 a {
      text-decoration: none;
      font-weight: 300;
      font-size: 34px;
      line-height: 1.3; }
  .blog-page ul.post-list .date-container {
    margin-bottom: 10px; }
  .blog-page ul.post-list li {
    margin-bottom: 40px; }

.blog-page .date-container time {
  color: #888; }

.blog-page .mdl-button a {
  color: black; }

.blog-page .post-navigation {
  padding-top: 50px;
  clear: both; }
  .blog-page .post-navigation a:nth-child(1) {
    float: left; }
  .blog-page .post-navigation a:nth-child(2) {
    float: right; }

.blog-page .sidebar h1 {
  font-size: 28px; }

.blog-page .sidebar h2 {
  font-size: 22px;
  font-weight: 300;
  margin-top: 40px; }

.blog-page .sidebar ul {
  list-style-type: none;
  padding-left: 0;
  margin-top: 0; }

.blog-page .sidebar .social-links {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  margin-top: 50px;
  font-size: 44px;
  line-height: 50px; }
  .blog-page .sidebar .social-links div {
    margin: 0 4px; }
    .blog-page .sidebar .social-links div a {
      color: rgb(33,150,243); }
    .blog-page .sidebar .social-links div:first-of-type {
      margin-left: 0; }
    .blog-page .sidebar .social-links div:last-of-type {
      margin-right: 0; }

@media (max-width: 767px) {
  .blog-post-page > .container {
    width: 100vw; } }

@media (min-width: 768px) {
  .blog-page .mdl-grid > ul {
    margin-top: 24px; }
  .blog-page .post-list, .blog-page article {
    padding-right: 50px; }
  .blog-page .sidebar {
    padding: 16px; }
  .blog-post-page .excerpt {
    padding-left: 50px; } }

.pricing-page .container.main div {
  margin: 0 auto;
  padding: 16px; }

.pricing-page .container.main .price {
  background-color: rgb(236,64,122);
  margin-top: 20px;
  max-width: 330px;
  min-width: 250px;
  width: auto; }
  .pricing-page .container.main .price, .pricing-page .container.main .price * {
    color: white; }
  .pricing-page .container.main .price h1 {
    font-size: 60px; }
  .pricing-page .container.main .price .qualification {
    display: inline-block;
    padding: 0;
    position: relative;
    top: -5px; }

.pricing-page .container.main .text-body {
  margin-top: 50px;
  text-align: center;
  line-height: 34px;
  font-size: 24px;
  max-width: 500px; }

@media (min-width: 768px) {
  .pricing-page .container.main .price {
    margin-top: 80px; } }

.pricing-preview-page > .container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }

.pricing-preview-page .hide {
  display: none !important; }

.pricing-preview-page .information {
  text-align: center;
  max-width: 600px;
  font-size: 24px;
  line-height: 34px;
  margin-top: 60px;
  margin-bottom: 30px;
  border-top: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
  padding: 20px 0; }

.pricing-preview-page > .container > h1 {
  text-align: center;
  padding-bottom: 12px; }

.pricing-preview-page .boxes {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  margin-bottom: 40px; }
  .pricing-preview-page .boxes.app-type {
    max-width: 950px; }

.pricing-preview-page .box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: normal;
      -ms-flex-align: normal;
          align-items: normal;
  position: relative;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  margin-top: 20px;
  height: auto;
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  text-transform: none;
  text-align: left;
  overflow: hidden;
  background-color: rgb(250,250,250);
  transition: background-color 0.15s ease-in-out, color 0.15s ease-in-out; }
  .pricing-preview-page .box.has-footer {
    padding-bottom: 60px; }
  .pricing-preview-page .box .icon {
    font-size: 50px;
    text-align: center;
    margin-top: 46px; }
  .pricing-preview-page .box h1 {
    font-size: 28px;
    text-align: center;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 16px;
    padding-bottom: 10px; }
  .pricing-preview-page .box ul {
    list-style: none; }
    .pricing-preview-page .box ul li {
      padding-left: 0;
      margin-bottom: 12px; }
    .pricing-preview-page .box ul li:last-of-type {
      margin-bottom: 0; }
    .pricing-preview-page .box ul li.separator {
      border-top: 1px solid rgba(0, 0, 0, 0.2);
      margin-top: 16px; }
  .pricing-preview-page .box > div, .pricing-preview-page .box ul {
    font-size: 18px;
    font-weight: 300;
    line-height: 28px;
    padding-left: 15px;
    padding-right: 15px; }
  .pricing-preview-page .box .billed-annually {
    text-align: center;
    font-style: italic; }
  .pricing-preview-page .box .footer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 52px;
    padding: 0;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex; }
    .pricing-preview-page .box .footer > div {
      padding-left: 15px;
      padding-top: 12px;
      padding-bottom: 12px;
      line-height: 2;
      font-size: 14px;
      font-weight: 300; }

.pricing-preview-page .app-type .box {
  text-align: center; }

.pricing-preview-page .app-type.active {
  background-color: rgb(197,17,98);
  color: white; }
  .pricing-preview-page .app-type.active .footer {
    -webkit-transform: translateY(0);
            transform: translateY(0); }

.pricing-preview-page .app-type .footer {
  -webkit-transform: translateY(52px);
          transform: translateY(52px);
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center; }

.pricing-preview-page .plans-container {
  width: 100%; }
  .pricing-preview-page .plans-container .pay-annually-switch-container {
    margin-top: 10px;
    margin-bottom: 10px; }
    .pricing-preview-page .plans-container .pay-annually-switch-container .mdl-switch__label {
      position: static;
      margin-left: 24px;
      font-size: 18px; }
  .pricing-preview-page .plans-container .number-of-users {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 20px 20px;
    margin-top: 20px;
    margin-bottom: 30px;
    border-top: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
    width: 100%; }
    .pricing-preview-page .plans-container .number-of-users div.main {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
    .pricing-preview-page .plans-container .number-of-users .caption {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-direction: column;
          -ms-flex-direction: column;
              flex-direction: column;
      font-size: 28px;
      line-height: 32px; }
    .pricing-preview-page .plans-container .number-of-users input {
      border: none;
      font-size: 48px;
      width: 90px;
      text-align: right;
      background-color: transparent;
      margin-left: 16px;
      margin-right: 4px;
      -moz-appearance: textfield; }
      .pricing-preview-page .plans-container .number-of-users input::-webkit-outer-spin-button, .pricing-preview-page .plans-container .number-of-users input::-webkit-inner-spin-button {
        -webkit-appearance: none; }
    .pricing-preview-page .plans-container .number-of-users calcapp-stepper button {
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-justify-content: center;
          -ms-flex-pack: center;
              justify-content: center;
      font-size: 24px;
      height: 30px;
      min-width: 36px;
      padding: 0; }
      .pricing-preview-page .plans-container .number-of-users calcapp-stepper button i.mdi {
        line-height: 10px; }
    .pricing-preview-page .plans-container .number-of-users div.many-users {
      margin-top: 16px;
      line-height: 22px;
      text-align: center; }

.pricing-preview-page .plans-container {
  position: relative; }

.pricing-preview-page .plans {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  .pricing-preview-page .plans > h1 {
    text-align: center; }
  .pricing-preview-page .plans .boxes .box.popular {
    background-color: #263238;
    color: white; }
    .pricing-preview-page .plans .boxes .box.popular .header {
      width: 100%;
      height: 46px;
      text-align: center;
      font-size: 14px;
      color: lightgray;
      padding-top: 14px;
      letter-spacing: 5px;
      text-transform: uppercase; }
    .pricing-preview-page .plans .boxes .box.popular li.separator {
      border-top: 1px solid rgba(255, 255, 255, 0.2); }
  .pricing-preview-page .plans .footer {
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    border-top: none; }
  .pricing-preview-page .plans .price {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 10px;
    margin-bottom: 12px;
    padding-left: 15px;
    padding-right: 15px; }
    .pricing-preview-page .plans .price .amount {
      font-size: 48px;
      line-height: 1;
      margin: 0 auto;
      font-weight: 400; }
    .pricing-preview-page .plans .price .qualifier {
      margin: 0 auto;
      margin-top: 4px; }
  .pricing-preview-page .plans .enterprise-contact-us {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-top: 14px;
    margin-bottom: 12px;
    padding-left: 15px;
    padding-right: 15px; }
    .pricing-preview-page .plans .enterprise-contact-us .label {
      font-size: 38px;
      line-height: 1;
      margin: 0 auto;
      font-weight: 400; }
    .pricing-preview-page .plans .enterprise-contact-us .email {
      margin: 0 auto;
      margin-top: 8px; }
      .pricing-preview-page .plans .enterprise-contact-us .email a {
        color: inherit;
        font-weight: 300; }

.pricing-preview-page.fully-loaded .app-type .footer {
  transition: -webkit-transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out;
  transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out; }

.pricing-preview-page.fully-loaded .box ul li {
  transition: height 0.15s ease-in; }

.pricing-preview-page .questions > .container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; }
  .pricing-preview-page .questions > .container h1 {
    font-size: 30px;
    font-weight: 400;
    line-height: 120%; }

@media (min-width: 768px) {
  .pricing-preview-page > .container .boxes {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 0; }
    .pricing-preview-page > .container .boxes .box {
      margin: 14px; }
      .pricing-preview-page > .container .boxes .box.starter ul {
        padding-right: 22px; }
        .pricing-preview-page > .container .boxes .box.starter ul li.separator {
          width: calc(100% + 7px); }
  .pricing-preview-page > .container .app-type li.additional-users {
    padding-right: 10px; }
  .pricing-preview-page > .container .plans-container .number-of-users {
    padding: 20px 30px;
    max-width: 305px; }
  .pricing-preview-page > .container .plans .box:not(.popular) {
    margin-top: 60px; }
  .pricing-preview-page .questions > .container {
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row; }
    .pricing-preview-page .questions > .container .column:nth-child(1) {
      margin-right: 40px; }
    .pricing-preview-page .questions > .container .column:nth-child(2) {
      margin-left: 40px; } }

@media (min-width: 1024px) and (max-width: 1199px) {
  .pricing-preview-page > .container {
    max-width: 1024px; } }

@media (min-width: 768px) and (max-width: 1023px) {
  .pricing-preview-page .box {
    min-width: 217px;
    max-width: 217px; } }

@media (min-width: 1024px) {
  .pricing-preview-page .app-type .box {
    min-width: 288px;
    max-width: 288px; }
    .pricing-preview-page .app-type .box ul {
      padding-left: 50px;
      padding-right: 50px; }
  .pricing-preview-page .app-type .plans .box {
    min-width: 235px;
    max-width: 235px; } }

.about-page .container {
  width: 100%; }

.about-page .inner-container {
  max-width: 800px; }

.unsubscribe-page > .container {
  width: 650px; }

.unsubscribe-page .mdl-textfield {
  width: 100%; }

.unsubscribe-page .fine-print {
  font-size: 12px;
  line-height: 18px; }

.unsubscribe-page .select-container {
  margin-bottom: 20px; }
  .unsubscribe-page .select-container select {
    background-color: white;
    height: 30px; }

.unsubscribe-page .textarea-container {
  margin-top: 10px; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhbGNhcHAtc2l0ZS0xLjAuMC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsNENBQTRDO0FBQzVDLGlCQUFpQjtBQUNqQjtFQUNFLHNCQUFjO0VBQWQscUJBQWM7RUFBZCxjQUFjO0VBQ2QsK0JBQXVCO01BQXZCLDJCQUF1QjtVQUF2Qix1QkFBdUI7RUFDdkIsaUJBQWlCO0VBQ2pCLG9CQUFvQixFQUFFO0VBQ3RCO0lBQ0UsZ0JBQVE7UUFBUixZQUFRO1lBQVIsUUFBUTtJQUNSLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5QixpQkFBaUI7SUFDakIsbUJBQW1CO0lBQ25CLFdBQVc7SUFDWCxnQkFBZ0I7SUFDaEIsV0FBVyxFQUFFO0lBQ2I7TUFDRSxxQkFBcUI7TUFDckIsb0JBQW9CLEVBQUU7SUFDeEI7TUFDRSxtQkFBbUI7TUFDbkIsT0FBTztNQUNQLFFBQVE7TUFDUixTQUFTO01BQ1QsVUFBVTtNQUNWLFlBQVk7TUFDWixXQUFXO01BQ1gsOEJBQThCO01BQzlCLHNCQUFzQjtNQUN0QixpQkFBaUI7TUFDakIsc0NBQXNDLEVBQUU7TUFDeEM7UUFDRSxXQUFXLEVBQUU7O0FBRXJCOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsMEJBQTBCO0FBQzFCOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0g7d0NBQ3dDO0FBQ3hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQUNILHdDQUF3QztBQUN4Qzs7Ozs7Ozs7O0VBU0U7QUFDRixvQ0FBb0M7QUFDcEM7Ozs7O0dBS0c7QUFDSDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDRDQUE0QztBQUM1QyxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxvQ0FBb0M7QUFDcEMsNENBQTRDO0FBQzVDLHdDQUF3QztBQUN4Qyx3Q0FBd0M7QUFDeEMsOENBQThDO0FBQzlDLDBD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RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSwrQkFBK0IsRUFBRTs7QUFFbkM7RUFDRSwwQ0FBMEMsRUFBRTs7QUFFOUM7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSwrQkFBK0IsRUFBRTs7QUFFbkM7RUFDRSwwQ0FBMEMsRUFBRTs7QUFFOUM7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxpQ0FBaUMsRUFBRTs7QUFFckM7RUFDRSw0Q0FBNEMsRUFBRTs7QUFFaEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxnQ0FBZ0MsRUFBRTs7QUFFcEM7RUFDRSwyQ0FBMkMsRUFBRTs7QUFFL0M7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7RUFDRSw2Q0FBNkMsRUFBRTs7QUFFakQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxtQ0FBbUMsRUFBRTs7QUFFdkM7RUFDRSw4Q0FBOEMsRUFBRTs7QUFFbEQ7RUFDRSxrQ0FBa0MsRUFBRTs7QUFFdEM7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aUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0UsaUJBQWlCLEVBQUU7O0FBRXJCO0VBQ0Us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QixFQUFFOztBQUV4QjtFQUNFO0lBQ0UsNEJBQW9CO1FBQXBCLHdCQUFvQjtZQUFwQixvQkFBb0I7SUFDcEIsd0JBQWdCO1FBQWhCLG9CQUFnQjtZQUFoQixnQkFBZ0I7SUFDaEIsZ0NBQXdCO1FBQXhCLHNCQUF3QjtZQUF4Qix3QkFBd0I7SUFDeEIsV0FBVyxFQUFFO0lBQ2I7TUFDRSxhQUFhLEVBQUU7TUFDZjtRQUNFLG9CQUFvQixFQUFFO1FBQ3RCO1VBQ0Usd0JBQXdCLEVBQUU7RUFDbEM7SUFDRSxvQkFBb0IsRUFBRTtFQUN4QjtJQUNFLG1CQUFtQjtJQUNuQixpQkFBaUIsRUFBRTtFQUNyQjtJQUNFLGlCQUFpQixFQUFFO0VBQ3JCO0lBQ0UsNEJBQW9CO1FBQXBCLHdCQUFvQjtZQUFwQixvQkFBb0IsRUFBRTtJQUN0QjtNQUNFLG1CQUFtQixFQUFFO0lBQ3ZCO01BQ0Usa0JBQWtCLEVBQUUsRUFBRTs7QUFFNUI7RUFDRTtJQUNFLGtCQUFrQixFQUFFLEVBQUU7O0FBRTFCO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsRUFBRTs7QUFFekI7RUFDRTtJQUNFLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRTtJQUNuQjtNQUNFLG1CQUFtQjtNQUNuQixvQkFBb0IsRUFBRTtFQUMxQjtJQUNFLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxFQUFFOztBQUV6QjtFQUNFLFlBQVksRUFBRTs7QUFFaEI7RUFDRSxpQkFBaUIsRUFBRTs7QUFFckI7RUFDRSxhQUFhLEVBQUU7O0FBRWpCO0VBQ0UsWUFBWSxFQUFFOztBQUVoQjtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0IsRUFBRTs7QUFFdEI7RUFDRSxvQkFBb0IsRUFBRTtFQUN0QjtJQUNFLHdCQUF3QjtJQUN4QixhQUFhLEVBQUU7O0FBRW5CO0VBQ0UsaUJBQWlCLEVBQUUiLCJmaWxlIjoiY2FsY2FwcC1zaXRlLTEuMC4wLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbmNhbGNhcHAtc3RlcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmctdG9wOiAycHg7XG4gIHBhZGRpbmctYm90dG9tOiAycHg7IH1cbiAgY2FsY2FwcC1zdGVwcGVyIC5idXR0b24ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMHB4IDFweCAxcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgei1pbmRleDogMDsgfVxuICAgIGNhbGNhcHAtc3RlcHBlciAuYnV0dG9uOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IHRoaW4gZG90dGVkO1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDNweDsgfVxuICAgIGNhbGNhcHAtc3RlcHBlciAuYnV0dG9uIC5iYWNrZ3JvdW5kIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDBweCAxcHggMXB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZS1pbi1vdXQ7IH1cbiAgICAgIGNhbGNhcHAtc3RlcHBlciAuYnV0dG9uIC5iYWNrZ3JvdW5kLmlzLWFjdGl2YXRlZCB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIE1hdGVyaWFsIERlc2lnbiBMaXRlICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuaHRtbCB7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7IH1cblxuLypcbiAqIFJlbW92ZSB0ZXh0LXNoYWRvdyBpbiBzZWxlY3Rpb24gaGlnaGxpZ2h0OlxuICogaHR0cHM6Ly90d2l0dGVyLmNvbS9taWtldGF5bHIvc3RhdHVzLzEyMjI4ODA1MzAxXG4gKlxuICogVGhlc2Ugc2VsZWN0aW9uIHJ1bGUgc2V0cyBoYXZlIHRvIGJlIHNlcGFyYXRlLlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbi8qXG4gKiBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG4gKi9cbmhyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMXB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qXG4gKiBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cbiAqL1xudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXV0aG9yJ3MgY3VzdG9tIHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgY2xhc3Nlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzOlxuICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKi9cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4OyB9XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvOyB9XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cbi5pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMiAqLyB9XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFWEFNUExFIE1lZGlhIFF1ZXJpZXMgZm9yIFJlc3BvbnNpdmUgRGVzaWduLlxuICAgVGhlc2UgZXhhbXBsZXMgb3ZlcnJpZGUgdGhlIHByaW1hcnkgKCdtb2JpbGUgZmlyc3QnKSBzdHlsZXMuXG4gICBNb2RpZnkgYXMgY29udGVudCByZXF1aXJlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM1ZW0pIHtcbiAgLyogU3R5bGUgYWRqdXN0bWVudHMgZm9yIHZpZXdwb3J0cyB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiAqLyB9XG5cbkBtZWRpYSBwcmludCwgKG1pbi1yZXNvbHV0aW9uOiAxLjI1ZHBweCksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKSB7XG4gIC8qIFN0eWxlIGFkanVzdG1lbnRzIGZvciBoaWdoIHJlc29sdXRpb24gZGV2aWNlcyAqLyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcmludCBzdHlsZXMuXG4gICBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbiAgIGh0dHA6Ly93d3cucGhwaWVkLmNvbS9kZWxheS1sb2FkaW5nLXlvdXItcHJpbnQtY3NzL1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSBwcmludCB7XG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyLFxuICAqOmZpcnN0LWxldHRlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICAgIC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLypcbiAgICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAgKi9cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIC8qXG4gICAgICogUHJpbnRpbmcgVGFibGVzOlxuICAgICAqIGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS93aWtpL1ByaW50aW5nX1RhYmxlc1xuICAgICAqL1xuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBSZW1vdmUgdGhlIHVud2FudGVkIGJveCBhcm91bmQgRkFCIGJ1dHRvbnMgKi9cbi8qIE1vcmUgaW5mbzogaHR0cDovL2dvby5nbC9JUHdLaSAqL1xuYSwgLm1kbC1hY2NvcmRpb24sIC5tZGwtYnV0dG9uLCAubWRsLWNhcmQsIC5tZGwtY2hlY2tib3gsIC5tZGwtZHJvcGRvd24tbWVudSxcbi5tZGwtaWNvbi10b2dnbGUsIC5tZGwtaXRlbSwgLm1kbC1yYWRpbywgLm1kbC1zbGlkZXIsIC5tZGwtc3dpdGNoLCAubWRsLXRhYnNfX3RhYiB7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsgfVxuXG4vKlxuICogTWFrZSBodG1sIHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiAqIFRoZW4gc2V0IHRvdWNoLWFjdGlvbiB0byBhdm9pZCB0b3VjaCBkZWxheSBvbiBtb2JpbGUgSUVcbiAqL1xuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC1tcy10b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuLypcbiogTWFrZSBib2R5IHRha2UgdXAgdGhlIGVudGlyZSBzY3JlZW5cbiogUmVtb3ZlIGJvZHkgbWFyZ2luIHNvIGxheW91dCBjb250YWluZXJzIGRvbid0IGNhdXNlIGV4dHJhIG92ZXJmbG93LlxuKi9cbmJvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qXG4gKiBNYWluIGRpc3BsYXkgcmVzZXQgZm9yIElFIHN1cHBvcnQuXG4gKiBTb3VyY2U6IGh0dHA6Ly93ZWJsb2cud2VzdC13aW5kLmNvbS9wb3N0cy8yMDE1L0phbi8xMi9tYWluLUhUTUw1LVRhZy1ub3Qtd29ya2luZy1pbi1JbnRlcm5ldC1FeHBsb3Jlci05MTAxMVxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiogQXBwbHkgbm8gZGlzcGxheSB0byBlbGVtZW50cyB3aXRoIHRoZSBoaWRkZW4gYXR0cmlidXRlLlxuKiBJRSA5IGFuZCAxMCBzdXBwb3J0LlxuKi9cbipbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuaHRtbCwgYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuXG4vKipcbiAgKiBTdHlsZXMgZm9yIEhUTUwgZWxlbWVudHNcbiAgKi9cbmgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDU2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgb3BhY2l0eTogMC41NDtcbiAgZm9udC1zaXplOiAwLjZlbTsgfVxuXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4OyB9XG5cbmgyIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA0NXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuXG5oMyB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7IH1cblxuaDQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmg1IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIG1hcmdpbi10b3A6IDI0cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxucCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbmEge1xuICBjb2xvcjogcmdiKDE5NCwyNCw5MSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuYmxvY2txdW90ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB9XG4gIGJsb2NrcXVvdGU6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuNWVtO1xuICAgIGNvbnRlbnQ6ICfigJwnOyB9XG4gIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC4wNWVtOyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmZjgxOyB9XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuXG5hZGRyZXNzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG51bCwgb2wge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4vKipcbiAqIENsYXNzIE5hbWUgU3R5bGVzXG4gKi9cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS00LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0zIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA1NnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTMtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDU2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgb3BhY2l0eTogMC41NDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1kaXNwbGF5LTItY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDQ1cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tZGlzcGxheS0xIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNDBweDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWRpc3BsYXktMS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1oZWFkbGluZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10aXRsZS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1zdWJoZWFkIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXN1YmhlYWQtY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0xIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtY29sb3ItY29udHJhc3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYm9keS0yLWZvcmNlLXByZWZlcnJlZC1mb250LWNvbG9yLWNvbnRyYXN0IHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIG9wYWNpdHk6IDAuODc7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1ib2R5LTEtZm9yY2UtcHJlZmVycmVkLWZvbnQge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWJvZHktMS1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tY2FwdGlvbi1mb3JjZS1wcmVmZXJyZWQtZm9udC1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjU0OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwOyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tbWVudS1jb2xvci1jb250cmFzdCB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG5cbi5tZGwtdHlwb2dyYXBoeS0tYnV0dG9uIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1idXR0b24tY29sb3ItY29udHJhc3Qge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3BhY2l0eTogMC44NzsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNlbnRlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLXRleHQtanVzdGlmeSB7XG4gIHRleHQtYWxpZ246IGp1c3RpZnk7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LW5vd3JhcCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWxvd2VyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LXVwcGVyY2FzZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS10ZXh0LWNhcGl0YWxpemUge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtdGhpbiB7XG4gIGZvbnQtd2VpZ2h0OiAyMDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtbGlnaHQge1xuICBmb250LXdlaWdodDogMzAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LXJlZ3VsYXIge1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7IH1cblxuLm1kbC10eXBvZ3JhcGh5LS1mb250LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsgfVxuXG4ubWRsLXR5cG9ncmFwaHktLWZvbnQtYmxhY2sge1xuICBmb250LXdlaWdodDogOTAwICFpbXBvcnRhbnQ7IH1cblxuLm1hdGVyaWFsLWljb25zIHtcbiAgZm9udC1mYW1pbHk6ICdNYXRlcmlhbCBJY29ucyc7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogJ2xpZ2EnO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1jb2xvci10ZXh0LS1yZWQge1xuICBjb2xvcjogcmdiKDI0NCw2Nyw1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDY3LDU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTUwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM1LDIzOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjA1LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1yZWQtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDUsMjEwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjM5LDE1NCwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMTU0LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC0zMDAge1xuICBjb2xvcjogcmdiKDIyOSwxMTUsMTE1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI5LDExNSwxMTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNDAwIHtcbiAgY29sb3I6IHJnYigyMzksODMsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksODMsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNTAwIHtcbiAgY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDQsNjcsNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNjAwIHtcbiAgY29sb3I6IHJnYigyMjksNTcsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjksNTcsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtNzAwIHtcbiAgY29sb3I6IHJnYigyMTEsNDcsNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTEsNDcsNDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtODAwIHtcbiAgY29sb3I6IHJnYigxOTgsNDAsNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTgsNDAsNDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtOTAwIHtcbiAgY29sb3I6IHJnYigxODMsMjgsMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxODMsMjgsMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDEzOCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDEzOCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1yZWQtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDgyLDgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXJlZC1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw4Miw4MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXJlZC1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjMsNjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzLDY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcmVkLUE3MDAge1xuICBjb2xvcjogcmdiKDIxMywwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcmVkLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEzLDAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmsge1xuICBjb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMywzMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNTAge1xuICBjb2xvcjogcmdiKDI1MiwyMjgsMjM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUyLDIyOCwyMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ4LDE4NywyMDgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ4LDE4NywyMDgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjQ0LDE0MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDE0MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTMwMCB7XG4gIGNvbG9yOiByZ2IoMjQwLDk4LDE0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDAsOTgsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay00MDAge1xuICBjb2xvcjogcmdiKDIzNiw2NCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM2LDY0LDEyMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstNTAwIHtcbiAgY29sb3I6IHJnYigyMzMsMzAsOTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMzLDMwLDk5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay02MDAge1xuICBjb2xvcjogcmdiKDIxNiwyNyw5NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTYsMjcsOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLTcwMCB7XG4gIGNvbG9yOiByZ2IoMTk0LDI0LDkxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NCwyNCw5MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstODAwIHtcbiAgY29sb3I6IHJnYigxNzMsMjAsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTczLDIwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay05MDAge1xuICBjb2xvcjogcmdiKDEzNiwxNCw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzYsMTQsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1waW5rLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMjgsMTcxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXBpbmstQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTI4LDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1waW5rLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDY0LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXBpbmstQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDAsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0NSwwLDg3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcGluay1BNzAwIHtcbiAgY29sb3I6IHJnYigxOTcsMTcsOTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcGluay1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NywxNyw5OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZSB7XG4gIGNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS01MCB7XG4gIGNvbG9yOiByZ2IoMjQzLDIyOSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MywyMjksMjQ1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjI1LDE5MCwyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjUsMTkwLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS0yMDAge1xuICBjb2xvcjogcmdiKDIwNiwxNDcsMjE2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA2LDE0NywyMTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtMzAwIHtcbiAgY29sb3I6IHJnYigxODYsMTA0LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NiwxMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTcxLDcxLDE4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3MSw3MSwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtNTAwIHtcbiAgY29sb3I6IHJnYigxNTYsMzksMTc2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDM5LDE3NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS02MDAge1xuICBjb2xvcjogcmdiKDE0MiwzNiwxNzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDIsMzYsMTcwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tcHVycGxlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMTIzLDMxLDE2MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMywzMSwxNjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtODAwIHtcbiAgY29sb3I6IHJnYigxMDYsMjcsMTU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA2LDI3LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS05MDAge1xuICBjb2xvcjogcmdiKDc0LDIwLDE0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDc0LDIwLDE0MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyMzQsMTI4LDI1MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1wdXJwbGUtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzQsMTI4LDI1MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BMjAwIHtcbiAgY29sb3I6IHJnYigyMjQsNjQsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCw2NCwyNTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wdXJwbGUtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjEzLDAsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXB1cnBsZS1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxMywwLDI0OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXB1cnBsZS1BNzAwIHtcbiAgY29sb3I6IHJnYigxNzAsMCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHVycGxlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTcwLDAsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUge1xuICBjb2xvcjogcmdiKDEwMyw1OCwxODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTUwIHtcbiAgY29sb3I6IHJnYigyMzcsMjMxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzcsMjMxLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjA5LDE5NiwyMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwOSwxOTYsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtMjAwIHtcbiAgY29sb3I6IHJnYigxNzksMTU3LDIxOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc5LDE1NywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS0zMDAge1xuICBjb2xvcjogcmdiKDE0OSwxMTcsMjA1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDksMTE3LDIwNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTI2LDg3LDE5NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI2LDg3LDE5NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAzLDU4LDE4MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTYwMCB7XG4gIGNvbG9yOiByZ2IoOTQsNTMsMTc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig5NCw1MywxNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS03MDAge1xuICBjb2xvcjogcmdiKDgxLDQ1LDE2OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODEsNDUsMTY4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtODAwIHtcbiAgY29sb3I6IHJnYig2OSwzOSwxNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1wdXJwbGUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY5LDM5LDE2MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLTkwMCB7XG4gIGNvbG9yOiByZ2IoNDksMjcsMTQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0OSwyNywxNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BMTAwIHtcbiAgY29sb3I6IHJnYigxNzksMTM2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3OSwxMzYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1wdXJwbGUtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI0LDc3LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLXB1cnBsZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNCw3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLXB1cnBsZS1BNDAwIHtcbiAgY29sb3I6IHJnYigxMDEsMzEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAxLDMxLDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtcHVycGxlLUE3MDAge1xuICBjb2xvcjogcmdiKDk4LDAsMjM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtcHVycGxlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTgsMCwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28ge1xuICBjb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjMsODEsMTgxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTUwIHtcbiAgY29sb3I6IHJnYigyMzIsMjM0LDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjMyLDIzNCwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tMTAwIHtcbiAgY29sb3I6IHJnYigxOTcsMjAyLDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NywyMDIsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0taW5kaWdvLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTU5LDE2OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTksMTY4LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby0zMDAge1xuICBjb2xvcjogcmdiKDEyMSwxMzQsMjAzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIxLDEzNCwyMDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tNDAwIHtcbiAgY29sb3I6IHJnYig5MiwxMDcsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTIsMTA3LDE5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby01MDAge1xuICBjb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYzLDgxLDE4MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby02MDAge1xuICBjb2xvcjogcmdiKDU3LDczLDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU3LDczLDE3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby03MDAge1xuICBjb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby04MDAge1xuICBjb2xvcjogcmdiKDQwLDUzLDE0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQwLDUzLDE0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby05MDAge1xuICBjb2xvcjogcmdiKDI2LDM1LDEyNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI2LDM1LDEyNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMTAwIHtcbiAgY29sb3I6IHJnYigxNDAsMTU4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1pbmRpZ28tQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDAsMTU4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BMjAwIHtcbiAgY29sb3I6IHJnYig4MywxMDksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDgzLDEwOSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1pbmRpZ28tQTQwMCB7XG4gIGNvbG9yOiByZ2IoNjEsOTAsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWluZGlnby1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYxLDkwLDI1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWluZGlnby1BNzAwIHtcbiAgY29sb3I6IHJnYig0OCw3OSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0taW5kaWdvLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDgsNzksMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZSB7XG4gIGNvbG9yOiByZ2IoMzMsMTUwLDI0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTUwIHtcbiAgY29sb3I6IHJnYigyMjcsMjQyLDI1MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNywyNDIsMjUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0xMDAge1xuICBjb2xvcjogcmdiKDE4NywyMjIsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywyMjIsMjUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0yMDAge1xuICBjb2xvcjogcmdiKDE0NCwyMDIsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0NCwyMDIsMjQ5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS0zMDAge1xuICBjb2xvcjogcmdiKDEwMCwxODEsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCwxODEsMjQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS00MDAge1xuICBjb2xvcjogcmdiKDY2LDE2NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsMTY1LDI0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtNTAwIHtcbiAgY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTYwMCB7XG4gIGNvbG9yOiByZ2IoMzAsMTM2LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMCwxMzYsMjI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS03MDAge1xuICBjb2xvcjogcmdiKDI1LDExOCwyMTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsMTE4LDIxMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtODAwIHtcbiAgY29sb3I6IHJnYigyMSwxMDEsMTkyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxLDEwMSwxOTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTMsNzEsMTYxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzLDcxLDE2MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMTMwLDE3NywyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzMCwxNzcsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BMjAwIHtcbiAgY29sb3I6IHJnYig2OCwxMzgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig2OCwxMzgsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNDAwIHtcbiAgY29sb3I6IHJnYig0MSwxMjEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig0MSwxMjEsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1BNzAwIHtcbiAgY29sb3I6IHJnYig0MSw5OCwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQxLDk4LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUge1xuICBjb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMsMTY5LDI0NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAge1xuICBjb2xvcjogcmdiKDIyNSwyNDUsMjU0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI1LDI0NSwyNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc5LDIyOSwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc5LDIyOSwyNTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI5LDIxMiwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI5LDIxMiwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzksMTk1LDI0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3OSwxOTUsMjQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS00MDAge1xuICBjb2xvcjogcmdiKDQxLDE4MiwyNDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDEsMTgyLDI0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtNTAwIHtcbiAgY29sb3I6IHJnYigzLDE2OSwyNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMywxNjksMjQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS02MDAge1xuICBjb2xvcjogcmdiKDMsMTU1LDIyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzLDE1NSwyMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLTcwMCB7XG4gIGNvbG9yOiByZ2IoMiwxMzYsMjA5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIsMTM2LDIwOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWJsdWUtODAwIHtcbiAgY29sb3I6IHJnYigyLDExOSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMiwxMTksMTg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS05MDAge1xuICBjb2xvcjogcmdiKDEsODcsMTU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWJsdWUtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEsODcsMTU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BMTAwIHtcbiAgY29sb3I6IHJnYigxMjgsMjE2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIxNiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUEyMDAge1xuICBjb2xvcjogcmdiKDY0LDE5NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY0LDE5NiwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ibHVlLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMTc2LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ibHVlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNzYsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE0NSwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtYmx1ZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTQ1LDIzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4ge1xuICBjb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg4LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAge1xuICBjb2xvcjogcmdiKDIyNCwyNDcsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDI0NywyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDIzNSwyNDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDIzNSwyNDIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIyMiwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIyMiwyMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzcsMjA4LDIyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NywyMDgsMjI1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi00MDAge1xuICBjb2xvcjogcmdiKDM4LDE5OCwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMTk4LDIxOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tNTAwIHtcbiAgY29sb3I6IHJnYigwLDE4OCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxODgsMjEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi02MDAge1xuICBjb2xvcjogcmdiKDAsMTcyLDE5MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDE3MiwxOTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxNTEsMTY3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUxLDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWN5YW4tODAwIHtcbiAgY29sb3I6IHJnYigwLDEzMSwxNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxMzEsMTQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi05MDAge1xuICBjb2xvcjogcmdiKDAsOTYsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWN5YW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsOTYsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BMTAwIHtcbiAgY29sb3I6IHJnYigxMzIsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTMyLDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLUEyMDAge1xuICBjb2xvcjogcmdiKDI0LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1jeWFuLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMjI5LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1jeWFuLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwyMjksMjU1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tY3lhbi1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE4NCwyMTIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tY3lhbi1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTg0LDIxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwge1xuICBjb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTUwLDEzNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNTAge1xuICBjb2xvcjogcmdiKDIyNCwyNDIsMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDI0MiwyNDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTEwMCB7XG4gIGNvbG9yOiByZ2IoMTc4LDIyMywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDIyMywyMTkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTIwMCB7XG4gIGNvbG9yOiByZ2IoMTI4LDIwMywxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTI4LDIwMywxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTMwMCB7XG4gIGNvbG9yOiByZ2IoNzcsMTgyLDE3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3NywxODIsMTcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC00MDAge1xuICBjb2xvcjogcmdiKDM4LDE2NiwxNTQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsMTY2LDE1NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtNTAwIHtcbiAgY29sb3I6IHJnYigwLDE1MCwxMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwxNTAsMTM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC02MDAge1xuICBjb2xvcjogcmdiKDAsMTM3LDEyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEzNywxMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLTcwMCB7XG4gIGNvbG9yOiByZ2IoMCwxMjEsMTA3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTIxLDEwNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtODAwIHtcbiAgY29sb3I6IHJnYigwLDEwNSw5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS10ZWFsLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigwLDEwNSw5MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtOTAwIHtcbiAgY29sb3I6IHJnYigwLDc3LDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsNzcsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS10ZWFsLUExMDAge1xuICBjb2xvcjogcmdiKDE2NywyNTUsMjM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjcsMjU1LDIzNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXRlYWwtQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTAwLDI1NSwyMTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwMCwyNTUsMjE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNDAwIHtcbiAgY29sb3I6IHJnYigyOSwyMzMsMTgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXRlYWwtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyOSwyMzMsMTgyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tdGVhbC1BNzAwIHtcbiAgY29sb3I6IHJnYigwLDE5MSwxNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tdGVhbC1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMTkxLDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuIHtcbiAgY29sb3I6IHJnYig3NiwxNzUsODApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNTAge1xuICBjb2xvcjogcmdiKDIzMiwyNDUsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMiwyNDUsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tMTAwIHtcbiAgY29sb3I6IHJnYigyMDAsMjMwLDIwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAwLDIzMCwyMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi0yMDAge1xuICBjb2xvcjogcmdiKDE2NSwyMTQsMTY3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjUsMjE0LDE2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTI5LDE5OSwxMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyOSwxOTksMTMyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNDAwIHtcbiAgY29sb3I6IHJnYigxMDIsMTg3LDEwNikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTAyLDE4NywxMDYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi01MDAge1xuICBjb2xvcjogcmdiKDc2LDE3NSw4MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNzYsMTc1LDgwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tNjAwIHtcbiAgY29sb3I6IHJnYig2NywxNjAsNzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY3LDE2MCw3MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLTcwMCB7XG4gIGNvbG9yOiByZ2IoNTYsMTQyLDYwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NiwxNDIsNjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi04MDAge1xuICBjb2xvcjogcmdiKDQ2LDEyNSw1MCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNDYsMTI1LDUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tOTAwIHtcbiAgY29sb3I6IHJnYigyNyw5NCwzMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjcsOTQsMzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmVlbi1BMTAwIHtcbiAgY29sb3I6IHJnYigxODUsMjQ2LDIwMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NSwyNDYsMjAyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JlZW4tQTIwMCB7XG4gIGNvbG9yOiByZ2IoMTA1LDI0MCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JlZW4tQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDUsMjQwLDE3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE0MDAge1xuICBjb2xvcjogcmdiKDAsMjMwLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ncmVlbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsMjMwLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZWVuLUE3MDAge1xuICBjb2xvcjogcmdiKDAsMjAwLDgzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZWVuLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwyMDAsODMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbiB7XG4gIGNvbG9yOiByZ2IoMTM5LDE5NSw3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzksMTk1LDc0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNTAge1xuICBjb2xvcjogcmdiKDI0MSwyNDgsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MSwyNDgsMjMzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tMTAwIHtcbiAgY29sb3I6IHJnYigyMjAsMjM3LDIwMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIwLDIzNywyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi0yMDAge1xuICBjb2xvcjogcmdiKDE5NywyMjUsMTY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTcsMjI1LDE2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLTMwMCB7XG4gIGNvbG9yOiByZ2IoMTc0LDIxMywxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NCwyMTMsMTI5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tNDAwIHtcbiAgY29sb3I6IHJnYigxNTYsMjA0LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU2LDIwNCwxMDEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi01MDAge1xuICBjb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzOSwxOTUsNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi02MDAge1xuICBjb2xvcjogcmdiKDEyNCwxNzksNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyNCwxNzksNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi03MDAge1xuICBjb2xvcjogcmdiKDEwNCwxNTksNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEwNCwxNTksNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi04MDAge1xuICBjb2xvcjogcmdiKDg1LDEzOSw0NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODUsMTM5LDQ3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGlnaHQtZ3JlZW4tOTAwIHtcbiAgY29sb3I6IHJnYig1MSwxMDUsMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDUxLDEwNSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUExMDAge1xuICBjb2xvcjogcmdiKDIwNCwyNTUsMTQ0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA0LDI1NSwxNDQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saWdodC1ncmVlbi1BMjAwIHtcbiAgY29sb3I6IHJnYigxNzgsMjU1LDg5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpZ2h0LWdyZWVuLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc4LDI1NSw4OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE0MDAge1xuICBjb2xvcjogcmdiKDExOCwyNTUsMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saWdodC1ncmVlbi1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDExOCwyNTUsMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpZ2h0LWdyZWVuLUE3MDAge1xuICBjb2xvcjogcmdiKDEwMCwyMjEsMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGlnaHQtZ3JlZW4tQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDAsMjIxLDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZSB7XG4gIGNvbG9yOiByZ2IoMjA1LDIyMCw1NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTUwIHtcbiAgY29sb3I6IHJnYigyNDksMjUxLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0OSwyNTEsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0xMDAge1xuICBjb2xvcjogcmdiKDI0MCwyNDQsMTk1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI0MCwyNDQsMTk1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0yMDAge1xuICBjb2xvcjogcmdiKDIzMCwyMzgsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCwyMzgsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS0zMDAge1xuICBjb2xvcjogcmdiKDIyMCwyMzEsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyMCwyMzEsMTE3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS00MDAge1xuICBjb2xvcjogcmdiKDIxMiwyMjUsODcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjEyLDIyNSw4NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtNTAwIHtcbiAgY29sb3I6IHJnYigyMDUsMjIwLDU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwNSwyMjAsNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTYwMCB7XG4gIGNvbG9yOiByZ2IoMTkyLDIwMiw1MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTIsMjAyLDUxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS03MDAge1xuICBjb2xvcjogcmdiKDE3NSwxODAsNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTc1LDE4MCw0MykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWxpbWUtODAwIHtcbiAgY29sb3I6IHJnYigxNTgsMTU3LDM2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWxpbWUtODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTcsMzYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLTkwMCB7XG4gIGNvbG9yOiByZ2IoMTMwLDExOSwyMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMzAsMTE5LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BMTAwIHtcbiAgY29sb3I6IHJnYigyNDQsMjU1LDEyOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLUExMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDI1NSwxMjkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLUEyMDAge1xuICBjb2xvcjogcmdiKDIzOCwyNTUsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzOCwyNTUsNjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1saW1lLUE0MDAge1xuICBjb2xvcjogcmdiKDE5OCwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1saW1lLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk4LDI1NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tbGltZS1BNzAwIHtcbiAgY29sb3I6IHJnYigxNzQsMjM0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tbGltZS1BNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NCwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdyB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI1MywyMzEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTUwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTMsMjMxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0OSwxOTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjQ5LDE5NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy0yMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNDUsMTU3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0NSwxNTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQxLDExOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctMzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNDEsMTE4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzOCw4OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzgsODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjM1LDU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzNSw1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy02MDAge1xuICBjb2xvcjogcmdiKDI1MywyMTYsNTMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTMsMjE2LDUzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LTcwMCB7XG4gIGNvbG9yOiByZ2IoMjUxLDE5Miw0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1MSwxOTIsNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctODAwIHtcbiAgY29sb3I6IHJnYigyNDksMTY4LDM3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ5LDE2OCwzNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy05MDAge1xuICBjb2xvcjogcmdiKDI0NSwxMjcsMjMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMTI3LDIzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMTQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyNTUsMTQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0teWVsbG93LUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS15ZWxsb3ctQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS15ZWxsb3ctQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIzNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXllbGxvdy1BNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMzQsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXllbGxvdy1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjE0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0teWVsbG93LUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIxNCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXIge1xuICBjb2xvcjogcmdiKDI1NSwxOTMsNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci01MCB7XG4gIGNvbG9yOiByZ2IoMjU1LDI0OCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0OCwyMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci0xMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMzYsMTc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjM2LDE3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIyNCwxMzApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjQsMTMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItMzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjEzLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjEzLDc5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjAyLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjAyLDQwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTkzLDcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItNTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxOTMsNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTYwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE3OSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTc5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci03MDAge1xuICBjb2xvcjogcmdiKDI1NSwxNjAsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE2MCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItODAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTQzLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItODAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNDMsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWFtYmVyLTkwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDExMSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFtYmVyLTkwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTExLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjI5LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjksMTI3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYW1iZXItQTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIxNSw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hbWJlci1BMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMTUsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTk2LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTk2LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hbWJlci1BNzAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYW1iZXItQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTcxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2Uge1xuICBjb2xvcjogcmdiKDI1NSwxNTIsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE1MiwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTUwIHtcbiAgY29sb3I6IHJnYigyNTUsMjQzLDIyNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI0MywyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtMTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMjI0LDE3OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMjQsMTc4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTIwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjA0LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS0zMDAge1xuICBjb2xvcjogcmdiKDI1NSwxODMsNzcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTgzLDc3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE2NywzOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtNDAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwxNjcsMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNTAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTUyLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNjAwIHtcbiAgY29sb3I6IHJnYigyNTEsMTQwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMTQwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtNzAwIHtcbiAgY29sb3I6IHJnYigyNDUsMTI0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDUsMTI0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtODAwIHtcbiAgY29sb3I6IHJnYigyMzksMTA4LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMTA4LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1vcmFuZ2UtOTAwIHtcbiAgY29sb3I6IHJnYigyMzAsODEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCw4MSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUExMDAge1xuICBjb2xvcjogcmdiKDI1NSwyMDksMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLW9yYW5nZS1BMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDksMTI4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwxNzEsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUEyMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSw2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLW9yYW5nZS1BNDAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTQ1LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tb3JhbmdlLUE0MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE0NSwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tb3JhbmdlLUE3MDAge1xuICBjb2xvcjogcmdiKDI1NSwxMDksMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1vcmFuZ2UtQTcwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTA5LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZSB7XG4gIGNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSw4NywzNCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwIHtcbiAgY29sb3I6IHJnYigyNTEsMjMzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTEsMjMzLDIzMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDIwNCwxODgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwyMDQsMTg4KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtMjAwIHtcbiAgY29sb3I6IHJnYigyNTUsMTcxLDE0NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDE3MSwxNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS0zMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMzgsMTAxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTM4LDEwMSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDExMiw2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDExMiw2NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTUwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDg3LDM0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsODcsMzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS02MDAge1xuICBjb2xvcjogcmdiKDI0NCw4MSwzMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ0LDgxLDMwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtNzAwIHtcbiAgY29sb3I6IHJnYigyMzAsNzQsMjUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtNzAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIzMCw3NCwyNSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLTgwMCB7XG4gIGNvbG9yOiByZ2IoMjE2LDY3LDIxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTYsNjcsMjEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1kZWVwLW9yYW5nZS05MDAge1xuICBjb2xvcjogcmdiKDE5MSw1NCwxMikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1kZWVwLW9yYW5nZS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTkxLDU0LDEyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtQTEwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDE1OCwxMjgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTEwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTU4LDEyOCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUEyMDAge1xuICBjb2xvcjogcmdiKDI1NSwxMTAsNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTIwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMTEwLDY0KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZGVlcC1vcmFuZ2UtQTQwMCB7XG4gIGNvbG9yOiByZ2IoMjU1LDYxLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZGVlcC1vcmFuZ2UtQTQwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsNjEsMCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWRlZXAtb3JhbmdlLUE3MDAge1xuICBjb2xvcjogcmdiKDIyMSw0NCwwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWRlZXAtb3JhbmdlLUE3MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjIxLDQ0LDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93biB7XG4gIGNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEyMSw4NSw3MikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwIHtcbiAgY29sb3I6IHJnYigyMzksMjM1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzksMjM1LDIzMykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTEwMCB7XG4gIGNvbG9yOiByZ2IoMjE1LDIwNCwyMDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tMTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIxNSwyMDQsMjAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tMjAwIHtcbiAgY29sb3I6IHJnYigxODgsMTcwLDE2NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg4LDE3MCwxNjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi0zMDAge1xuICBjb2xvcjogcmdiKDE2MSwxMzYsMTI3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjEsMTM2LDEyNykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTQwMCB7XG4gIGNvbG9yOiByZ2IoMTQxLDExMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLDExMCw5OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTUwMCB7XG4gIGNvbG9yOiByZ2IoMTIxLDg1LDcyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTUwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMjEsODUsNzIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi02MDAge1xuICBjb2xvcjogcmdiKDEwOSw3Niw2NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTA5LDc2LDY1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYnJvd24tNzAwIHtcbiAgY29sb3I6IHJnYig5Myw2NCw1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1icm93bi03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTMsNjQsNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1icm93bi04MDAge1xuICBjb2xvcjogcmdiKDc4LDUyLDQ2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJyb3duLTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig3OCw1Miw0NikgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJyb3duLTkwMCB7XG4gIGNvbG9yOiByZ2IoNjIsMzksMzUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYnJvd24tOTAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDYyLDM5LDM1KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tZ3JleSB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNTgsMTU4LDE1OCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWdyZXktNTAge1xuICBjb2xvcjogcmdiKDI1MCwyNTAsMjUwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWdyZXktNTAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUwLDI1MCwyNTApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTEwMCB7XG4gIGNvbG9yOiByZ2IoMjQ1LDI0NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQ1LDI0NSwyNDUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTIwMCB7XG4gIGNvbG9yOiByZ2IoMjM4LDIzOCwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0yMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjM4LDIzOCwyMzgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTMwMCB7XG4gIGNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS0zMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTQwMCB7XG4gIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg5LDE4OSwxODkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTUwMCB7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTYwMCB7XG4gIGNvbG9yOiByZ2IoMTE3LDExNywxMTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS02MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTE3LDExNywxMTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTcwMCB7XG4gIGNvbG9yOiByZ2IoOTcsOTcsOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTcsOTcsOTcpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTgwMCB7XG4gIGNvbG9yOiByZ2IoNjYsNjYsNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS04MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsNjYsNjYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ncmV5LTkwMCB7XG4gIGNvbG9yOiByZ2IoMzMsMzMsMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tZ3JleS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMzMsMzMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXkge1xuICBjb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDk2LDEyNSwxMzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAge1xuICBjb2xvcjogcmdiKDIzNiwyMzksMjQxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS01MCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYsMjM5LDI0MSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS0xMDAge1xuICBjb2xvcjogcmdiKDIwNywyMTYsMjIwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS0xMDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjA3LDIxNiwyMjApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktMjAwIHtcbiAgY29sb3I6IHJnYigxNzYsMTkwLDE5NykgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1ibHVlLWdyZXktMjAwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE3NiwxOTAsMTk3KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTMwMCB7XG4gIGNvbG9yOiByZ2IoMTQ0LDE2NCwxNzQpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTMwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDQsMTY0LDE3NCkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS00MDAge1xuICBjb2xvcjogcmdiKDEyMCwxNDQsMTU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS00MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTIwLDE0NCwxNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibHVlLWdyZXktNTAwIHtcbiAgY29sb3I6IHJnYig5NiwxMjUsMTM5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS01MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoOTYsMTI1LDEzOSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS02MDAge1xuICBjb2xvcjogcmdiKDg0LDExMCwxMjIpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTYwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig4NCwxMTAsMTIyKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTcwMCB7XG4gIGNvbG9yOiByZ2IoNjksOTAsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS03MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjksOTAsMTAwKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYmx1ZS1ncmV5LTgwMCB7XG4gIGNvbG9yOiByZ2IoNTUsNzEsNzkpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmx1ZS1ncmV5LTgwMCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYig1NSw3MSw3OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLWJsdWUtZ3JleS05MDAge1xuICBjb2xvcjogcmdiKDM4LDUwLDU2KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWJsdWUtZ3JleS05MDAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzgsNTAsNTYpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1ibGFjayB7XG4gIGNvbG9yOiByZ2IoMCwwLDApICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS13aGl0ZSB7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLXByaW1hcnktY29udHJhc3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci0tcHJpbWFyeS1kYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDQ4LDYzLDE1OSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLS1hY2NlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk0LDI0LDkxKSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItLWFjY2VudC1jb250cmFzdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnkge1xuICBjb2xvcjogcmdiKDMzLDE1MCwyNDMpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1wcmltYXJ5LWNvbnRyYXN0IHtcbiAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSkgIWltcG9ydGFudDsgfVxuXG4ubWRsLWNvbG9yLXRleHQtLXByaW1hcnktZGFyayB7XG4gIGNvbG9yOiByZ2IoNDgsNjMsMTU5KSAhaW1wb3J0YW50OyB9XG5cbi5tZGwtY29sb3ItdGV4dC0tYWNjZW50IHtcbiAgY29sb3I6IHJnYigxOTQsMjQsOTEpICFpbXBvcnRhbnQ7IH1cblxuLm1kbC1jb2xvci10ZXh0LS1hY2NlbnQtY29udHJhc3Qge1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXJpcHBsZSB7XG4gIGJhY2tncm91bmQ6IHJnYigwLDAsMCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLXJpcHBsZS5pcy1hbmltYXRpbmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCB3aWR0aCAwLjNzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBoZWlnaHQgMC4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjZzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtcmlwcGxlLmlzLXZpc2libGUge1xuICAgIG9wYWNpdHk6IDAuMzsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1hbmltYXRpb24tLWRlZmF1bHQge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuXG4ubWRsLWFuaW1hdGlvbi0tZmFzdC1vdXQtc2xvdy1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtYW5pbWF0aW9uLS1saW5lYXItb3V0LXNsb3ctaW4ge1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7IH1cblxuLm1kbC1hbmltYXRpb24tLWZhc3Qtb3V0LWxpbmVhci1pbiB7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1iYWRnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4OyB9XG4gIC5tZGwtYmFkZ2U6bm90KFtkYXRhLWJhZGdlXSkge1xuICAgIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuICAubWRsLWJhZGdlW2RhdGEtYmFkZ2VdOmFmdGVyIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtYmFkZ2UpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTExcHg7XG4gICAgcmlnaHQ6IC0yNHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMTk0LDI0LDkxKTtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAgIC5tZGwtYnV0dG9uIC5tZGwtYmFkZ2VbZGF0YS1iYWRnZV06YWZ0ZXIge1xuICAgICAgdG9wOiAtMTBweDtcbiAgICAgIHJpZ2h0OiAtNXB4OyB9XG4gIC5tZGwtYmFkZ2UubWRsLWJhZGdlLS1uby1iYWNrZ3JvdW5kW2RhdGEtYmFkZ2VdOmFmdGVyIHtcbiAgICBjb2xvcjogcmdiKDE5NCwyNCw5MSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAxcHggZ3JheTsgfVxuICAubWRsLWJhZGdlLm1kbC1iYWRnZS0tb3ZlcmxhcCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgLm1kbC1iYWRnZS5tZGwtYmFkZ2UtLW92ZXJsYXA6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IC0xMHB4OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHJnYigwLDAsMCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAzNnB4O1xuICBtYXJnaW46IDA7XG4gIG1pbi13aWR0aDogNjRweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWxsLWNoYW5nZTogYm94LXNoYWRvdztcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzZweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAubWRsLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwOyB9XG4gIC5tZGwtYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjIwKTsgfVxuICAubWRsLWJ1dHRvbjpmb2N1czpub3QoOmFjdGl2ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tY29sb3JlZCB7XG4gICAgY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuICAgIC5tZGwtYnV0dG9uLm1kbC1idXR0b24tLWNvbG9yZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG5cbmlucHV0Lm1kbC1idXR0b25bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4ubWRsLWJ1dHRvbi0tcmFpc2VkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNTgsMTU4LDE1OCwgMC4yMCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkOmFjdGl2ZSB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tcmFpc2VkOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpLCAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTgsMTU4LDE1OCwgMC40MCk7IH1cbiAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMzMsMTUwLDI0Myk7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpOyB9XG4gICAgLm1kbC1idXR0b24tLXJhaXNlZC5tZGwtYnV0dG9uLS1jb2xvcmVkOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgICAubWRsLWJ1dHRvbi0tcmFpc2VkLm1kbC1idXR0b24tLWNvbG9yZWQ6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuICAgIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tY29sb3JlZCAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG5cbi5tZGwtYnV0dG9uLS1mYWIge1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBtYXJnaW46IGF1dG87XG4gIG1pbi13aWR0aDogNTZweDtcbiAgd2lkdGg6IDU2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHJnYmEoMTU4LDE1OCwxNTgsIDAuMjApO1xuICBib3gtc2hhZG93OiAwIDFweCAxLjVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAubWRsLWJ1dHRvbi0tZmFiIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTJweCwgLTEycHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4OyB9XG4gIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tbWluaS1mYWIge1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7IH1cbiAgLm1kbC1idXR0b24tLWZhYiAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtYnV0dG9uLS1mYWI6YWN0aXZlIHtcbiAgICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU4LDE1OCwxNTgsIDAuNDApOyB9XG4gIC5tZGwtYnV0dG9uLS1mYWI6Zm9jdXM6bm90KDphY3RpdmUpIHtcbiAgICBib3gtc2hhZG93OiAwIDAgOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjM2KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE1OCwxNTgsMTU4LCAwLjQwKTsgfVxuICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYigxOTQsMjQsOTEpO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMjQsOTEpOyB9XG4gICAgLm1kbC1idXR0b24tLWZhYi5tZGwtYnV0dG9uLS1jb2xvcmVkOmZvY3VzOm5vdCg6YWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTk0LDI0LDkxKTsgfVxuICAgIC5tZGwtYnV0dG9uLS1mYWIubWRsLWJ1dHRvbi0tY29sb3JlZDphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NCwyNCw5MSk7IH1cbiAgICAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWNvbG9yZWQgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWJ1dHRvbi0taWNvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1pbi13aWR0aDogMzJweDtcbiAgd2lkdGg6IDMycHg7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gIC5tZGwtYnV0dG9uLS1pY29uIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTJweCwgLTEycHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4OyB9XG4gIC5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbiB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1pbi13aWR0aDogMjRweDtcbiAgICB3aWR0aDogMjRweDsgfVxuICAgIC5tZGwtYnV0dG9uLS1pY29uLm1kbC1idXR0b24tLW1pbmktaWNvbiAubWF0ZXJpYWwtaWNvbnMge1xuICAgICAgdG9wOiAwcHg7XG4gICAgICBsZWZ0OiAwcHg7IH1cbiAgLm1kbC1idXR0b24tLWljb24gLm1kbC1idXR0b25fX3JpcHBsZS1jb250YWluZXIge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTsgfVxuXG4ubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1idXR0b25bZGlzYWJsZWRdIC5tZGwtYnV0dG9uX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlLFxuICAubWRsLWJ1dHRvbi5tZGwtYnV0dG9uLS1kaXNhYmxlZCAubWRsLWJ1dHRvbl9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeSB7XG4gIGNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeSAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1wcmltYXJ5Lm1kbC1idXR0b24tLXJhaXNlZCwgLm1kbC1idXR0b24tLXByaW1hcnkubWRsLWJ1dHRvbi0tcHJpbWFyeS5tZGwtYnV0dG9uLS1mYWIge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuXG4ubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudCB7XG4gIGNvbG9yOiByZ2IoMTk0LDI0LDkxKTsgfVxuICAubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudCAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDI1NSwyNTUsMjU1KTsgfVxuICAubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWFjY2VudC5tZGwtYnV0dG9uLS1yYWlzZWQsIC5tZGwtYnV0dG9uLS1hY2NlbnQubWRsLWJ1dHRvbi0tYWNjZW50Lm1kbC1idXR0b24tLWZhYiB7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NCwyNCw5MSk7IH1cblxuLm1kbC1idXR0b25bZGlzYWJsZWRdW2Rpc2FibGVkXSwgLm1kbC1idXR0b24ubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC4yNik7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLm1kbC1idXR0b24tLWZhYltkaXNhYmxlZF1bZGlzYWJsZWRdLCAubWRsLWJ1dHRvbi0tZmFiLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwgMC4xMik7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuXG4ubWRsLWJ1dHRvbi0tcmFpc2VkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1yYWlzZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQubWRsLWJ1dHRvbi0tZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtYnV0dG9uLS1jb2xvcmVkW2Rpc2FibGVkXVtkaXNhYmxlZF0sIC5tZGwtYnV0dG9uLS1jb2xvcmVkLm1kbC1idXR0b24tLWRpc2FibGVkLm1kbC1idXR0b24tLWRpc2FibGVkIHtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG5cbi5tZGwtYnV0dG9uIC5tYXRlcmlhbC1pY29ucyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWluLWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAzMzBweDtcbiAgei1pbmRleDogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuLm1kbC1jYXJkX19tZWRpYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMjQsOTEpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGluZy1ib3g7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtY2FyZF9fdGl0bGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogcmdiKDAsMCwwKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogMTZweCAxNnB4O1xuICBwZXJzcGVjdGl2ZS1vcmlnaW46IDE2NXB4IDU2cHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDE2NXB4IDU2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLm1kbC1jYXJkX190aXRsZS5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5tZGwtY2FyZF9fdGl0bGUtdGV4dCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMTQ5cHggNDhweDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtY2FyZF9fc3VidGl0bGUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBtYXJnaW46IDA7IH1cblxuLm1kbC1jYXJkX19zdXBwb3J0aW5nLXRleHQge1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDE2cHggMTZweDtcbiAgd2lkdGg6IDkwJTsgfVxuICAubWRsLWNhcmRfX3N1cHBvcnRpbmctdGV4dC5tZGwtY2FyZC0tYm9yZGVyIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG5cbi5tZGwtY2FyZF9fYWN0aW9ucyB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLm1kbC1jYXJkX19hY3Rpb25zLm1kbC1jYXJkLS1ib3JkZXIge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cblxuLm1kbC1jYXJkLS1leHBhbmQge1xuICBmbGV4LWdyb3c6IDE7IH1cblxuLm1kbC1jYXJkX19tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTZweDtcbiAgdG9wOiAxNnB4OyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDsgfVxuICAubWRsLWNoZWNrYm94LmlzLXVwZ3JhZGVkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDI0cHg7IH1cblxuLm1kbC1jaGVja2JveF9faW5wdXQge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLWNoZWNrYm94LmlzLXVwZ3JhZGVkIC5tZGwtY2hlY2tib3hfX2lucHV0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTsgfVxuXG4ubWRsLWNoZWNrYm94X19ib3gtb3V0bGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzcHg7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuNTQpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHotaW5kZXg6IDI7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1jaGVja2VkIC5tZGwtY2hlY2tib3hfX2JveC1vdXRsaW5lIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtY2hlY2tib3ggLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fYm94LW91dGxpbmUge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogM3B4O1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1mb2N1c2VkIC5tZGwtY2hlY2tib3hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuICAubWRsLWNoZWNrYm94LmlzLWZvY3VzZWQuaXMtY2hlY2tlZCAubWRsLWNoZWNrYm94X19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggOHB4IHJnYmEoMzMsMTUwLDI0MywgMC4yNik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywxNTAsMjQzLCAwLjI2KTsgfVxuXG4ubWRsLWNoZWNrYm94X190aWNrLW91dGxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgbWFzazogdXJsKFwiL3ZlbmRvci9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvaW1hZ2VzL3RpY2stbWFzay5zdmc/ZW1iZWRcIik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI4cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQ7IH1cbiAgLm1kbC1jaGVja2JveC5pcy1jaGVja2VkIC5tZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpIHVybChcIi92ZW5kb3IvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2ltYWdlcy90aWNrLnN2Zz9lbWJlZFwiKTsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1jaGVja2JveC5pcy1jaGVja2VkIC5tZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZSxcbiAgLm1kbC1jaGVja2JveC5pcy1jaGVja2VkLmlzLWRpc2FibGVkIC5tZGwtY2hlY2tib3hfX3RpY2stb3V0bGluZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNikgdXJsKFwiL3ZlbmRvci9tYXRlcmlhbC1kZXNpZ24tbGl0ZS9zcmMvaW1hZ2VzL3RpY2suc3ZnP2VtYmVkXCIpOyB9XG5cbi5tZGwtY2hlY2tib3hfX2xhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1jaGVja2JveCAubWRsLWNoZWNrYm94X19sYWJlbCxcbiAgLm1kbC1jaGVja2JveC5pcy1kaXNhYmxlZCAubWRsLWNoZWNrYm94X19sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLWNoZWNrYm94X19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC02cHg7XG4gIGxlZnQ6IC0xMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94IC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLWNoZWNrYm94IC5tZGwtY2hlY2tib3hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtY2hlY2tib3guaXMtZGlzYWJsZWQgLm1kbC1jaGVja2JveF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtY2hpcCB7XG4gIGhlaWdodDogMzJweDtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZWRlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTtcbiAgbWFyZ2luOiAycHggMDtcbiAgZm9udC1zaXplOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5tZGwtY2hpcF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5tZGwtY2hpcF9fYWN0aW9uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgb3BhY2l0eTogMC41NDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDAgMCA0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC44Nyk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAubWRsLWNoaXBfX2NvbnRhY3Qge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDsgfVxuICAubWRsLWNoaXA6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpOyB9XG4gIC5tZGwtY2hpcDphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNmQ2ZDY7IH1cbiAgLm1kbC1jaGlwLS1kZWxldGFibGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDsgfVxuICAubWRsLWNoaXAtLWNvbnRhY3Qge1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoZWFkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3B4OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRoZWFkIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRib2R5IHRyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMjhzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGJvZHkgdHIuaXMtc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWVlOyB9XG4gIC5tZGwtZGF0YS10YWJsZSB0ZCwgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiAwIDE4cHggMTJweCAxOHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkOmZpcnN0LW9mLXR5cGUsIC5tZGwtZGF0YS10YWJsZSB0aDpmaXJzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuICAgIC5tZGwtZGF0YS10YWJsZSB0ZDpsYXN0LW9mLXR5cGUsIC5tZGwtZGF0YS10YWJsZSB0aDpsYXN0LW9mLXR5cGUge1xuICAgICAgcGFkZGluZy1yaWdodDogMjRweDsgfVxuICAubWRsLWRhdGEtdGFibGUgdGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgLm1kbC1kYXRhLXRhYmxlIHRkIC5tZGwtZGF0YS10YWJsZV9fc2VsZWN0IHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgLm1kbC1kYXRhLXRhYmxlIHRoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjU0KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWFzY2VuZGluZywgLm1kbC1kYXRhLXRhYmxlIHRoLm1kbC1kYXRhLXRhYmxlX19oZWFkZXItLXNvcnRlZC1kZXNjZW5kaW5nIHtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuODcpOyB9XG4gICAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWFzY2VuZGluZzpiZWZvcmUsIC5tZGwtZGF0YS10YWJsZSB0aC5tZGwtZGF0YS10YWJsZV9faGVhZGVyLS1zb3J0ZWQtZGVzY2VuZGluZzpiZWZvcmUge1xuICAgICAgICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgICAgICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgICAgIC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzOiAnbGlnYSc7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlNWQ4XCI7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViOyB9XG4gICAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWFzY2VuZGluZzpob3ZlciwgLm1kbC1kYXRhLXRhYmxlIHRoLm1kbC1kYXRhLXRhYmxlX19oZWFkZXItLXNvcnRlZC1kZXNjZW5kaW5nOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIC5tZGwtZGF0YS10YWJsZSB0aC5tZGwtZGF0YS10YWJsZV9faGVhZGVyLS1zb3J0ZWQtYXNjZW5kaW5nOmhvdmVyOmJlZm9yZSwgLm1kbC1kYXRhLXRhYmxlIHRoLm1kbC1kYXRhLXRhYmxlX19oZWFkZXItLXNvcnRlZC1kZXNjZW5kaW5nOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yNik7IH1cbiAgICAubWRsLWRhdGEtdGFibGUgdGgubWRsLWRhdGEtdGFibGVfX2hlYWRlci0tc29ydGVkLWRlc2NlbmRpbmc6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxlNWRiXCI7IH1cblxuLm1kbC1kYXRhLXRhYmxlX19zZWxlY3Qge1xuICB3aWR0aDogMTZweDsgfVxuXG4ubWRsLWRhdGEtdGFibGVfX2NlbGwtLW5vbi1udW1lcmljLm1kbC1kYXRhLXRhYmxlX19jZWxsLS1ub24tbnVtZXJpYyB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtZGlhbG9nIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiAwIDlweCA0NnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHdpZHRoOiAyODBweDsgfVxuICAubWRsLWRpYWxvZ19fdGl0bGUge1xuICAgIHBhZGRpbmc6IDI0cHggMjRweCAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICAubWRsLWRpYWxvZ19fYWN0aW9ucyB7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAubWRsLWRpYWxvZ19fYWN0aW9ucyA+ICoge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7IH1cbiAgICAgIC5tZGwtZGlhbG9nX19hY3Rpb25zID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5tZGwtZGlhbG9nX19hY3Rpb25zLS1mdWxsLXdpZHRoIHtcbiAgICAgIHBhZGRpbmc6IDAgMCA4cHggMDsgfVxuICAgICAgLm1kbC1kaWFsb2dfX2FjdGlvbnMtLWZ1bGwtd2lkdGggPiAqIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAubWRsLWRpYWxvZ19fY29udGVudCB7XG4gICAgcGFkZGluZzogMjBweCAyNHB4IDI0cHggMjRweDtcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtbWVnYS1mb290ZXIge1xuICBwYWRkaW5nOiAxNnB4IDQwcHg7XG4gIGNvbG9yOiByZ2IoMTU4LDE1OCwxNTgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsNjYsNjYpOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLXRvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlci0tbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbjphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX3RvcC1zZWN0aW9uOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY2xlYXI6IGJvdGg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGVmdC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tcmlnaHQtc2VjdGlvbiBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fcmlnaHQtc2VjdGlvbiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tbGVmdC1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1yaWdodC1zZWN0aW9uIGEsXG4gIC5tZGwtbWVnYS1mb290ZXJfX3JpZ2h0LXNlY3Rpb24gYSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0gfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1zb2NpYWwtYnRuLFxuLm1kbC1tZWdhLWZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTgsMTU4KTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbiB7XG4gICAgd2lkdGg6IDMzJTsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMSksXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgyKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDEpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMikge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoMyk6YWZ0ZXIsXG4gICAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpOmFmdGVyIHtcbiAgICAgIGNsZWFyOiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCksXG4gIC5tZGwtbWVnYS1mb290ZXJfX2Ryb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCg0KSB7XG4gICAgY2xlYXI6IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1taWRkbGUtc2VjdGlvbjphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fbWlkZGxlLXNlY3Rpb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWJvdHRvbS1zZWN0aW9uLFxuICAubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gICAgcGFkZGluZy10b3A6IDA7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb24sXG4gIC5tZGwtbWVnYS1mb290ZXItLWRyb3AtZG93bi1zZWN0aW9uOm50aC1jaGlsZCgzKSxcbiAgLm1kbC1tZWdhLWZvb3Rlci0tZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDQpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9fZHJvcC1kb3duLXNlY3Rpb246bnRoLWNoaWxkKDMpLFxuICAubWRsLW1lZ2EtZm9vdGVyX19kcm9wLWRvd24tc2VjdGlvbjpudGgtY2hpbGQoNCkge1xuICAgIHdpZHRoOiAyNCU7XG4gICAgZmxvYXQ6IGxlZnQ7IH0gfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTUuOHB4O1xuICBwYWRkaW5nOiAzMnB4O1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IC0xNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHotaW5kZXg6IDE7XG4gIG9wYWNpdHk6IDA7IH1cbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3ggKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgIGZvbnQtZmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnO1xuICAgIGNvbnRlbnQ6ICdcXEU1Q0UnOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nICsgLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0LFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3Qge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgKyAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyLFxuLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICBmb250LWZhbWlseTogJ01hdGVyaWFsIEljb25zJztcbiAgY29udGVudDogJ1xcRTVDRic7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyxcbi5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAzOS44cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIzLjhweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4ubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMy44cHg7XG4gIGhlaWdodDogMjMuOHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbi5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3Q6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJyc7IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0IGxpLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGxpIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4OyB9XG5cbi5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCBhLFxuLm1kbC1tZWdhLWZvb3Rlcl9fbGluay1saXN0IGEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3gsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZzphZnRlcixcbiAgICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94ICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZzphZnRlciB7XG4gICAgICBjb250ZW50OiAnJzsgfVxuICAubWRsLW1lZ2EtZm9vdGVyLS1oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCB+IC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXJfX2xpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZy1jaGVja2JveDpjaGVja2VkICsgLm1kbC1tZWdhLWZvb3Rlci0taGVhZGluZyArIC5tZGwtbWVnYS1mb290ZXItLWxpbmstbGlzdCxcbiAgLm1kbC1tZWdhLWZvb3Rlcl9faGVhZGluZy1jaGVja2JveDpjaGVja2VkIH4gLm1kbC1tZWdhLWZvb3Rlci0tbGluay1saXN0LFxuICAubWRsLW1lZ2EtZm9vdGVyX19oZWFkaW5nLWNoZWNrYm94OmNoZWNrZWQgfiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmcgKyAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXItLWhlYWRpbmc6YWZ0ZXIsXG4gIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmctY2hlY2tib3g6Y2hlY2tlZCArIC5tZGwtbWVnYS1mb290ZXJfX2hlYWRpbmc6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9IH1cblxuLm1kbC1tZWdhLWZvb3Rlci0tYm90dG9tLXNlY3Rpb24sXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5tZGwtbG9nbyB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ubWRsLW1lZ2EtZm9vdGVyLS1ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyLS1saW5rLWxpc3QgbGksXG4ubWRsLW1lZ2EtZm9vdGVyX19ib3R0b20tc2VjdGlvbiAubWRsLW1lZ2EtZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2MHB4KSB7XG4gIC5tZGwtbG9nbyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC1taW5pLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMzJweCAxNnB4O1xuICBjb2xvcjogcmdiKDE1OCwxNTgsMTU4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDY2LDY2LDY2KTsgfVxuICAubWRsLW1pbmktZm9vdGVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRsLW1pbmktZm9vdGVyIC5tZGwtbG9nbyB7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7IH1cblxuLm1kbC1taW5pLWZvb3Rlci0tbGluay1saXN0LFxuLm1kbC1taW5pLWZvb3Rlcl9fbGluay1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cbiAgLm1kbC1taW5pLWZvb3Rlci0tbGluay1saXN0IGxpLFxuICAubWRsLW1pbmktZm9vdGVyX19saW5rLWxpc3QgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgICAgIC5tZGwtbWluaS1mb290ZXItLWxpbmstbGlzdCBsaSxcbiAgICAgIC5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCBsaSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4OyB9IH1cbiAgLm1kbC1taW5pLWZvb3Rlci0tbGluay1saXN0IGEsXG4gIC5tZGwtbWluaS1mb290ZXJfX2xpbmstbGlzdCBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4ubWRsLW1pbmktZm9vdGVyLS1sZWZ0LXNlY3Rpb24sXG4ubWRsLW1pbmktZm9vdGVyX19sZWZ0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9yZGVyOiAwOyB9XG5cbi5tZGwtbWluaS1mb290ZXItLXJpZ2h0LXNlY3Rpb24sXG4ubWRsLW1pbmktZm9vdGVyX19yaWdodC1zZWN0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvcmRlcjogMTsgfVxuXG4ubWRsLW1pbmktZm9vdGVyLS1zb2NpYWwtYnRuLFxuLm1kbC1taW5pLWZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE1OCwxNTgsMTU4KTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLWljb24tdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGwtaWNvbi10b2dnbGVfX2lucHV0IHtcbiAgbGluZS1oZWlnaHQ6IDMycHg7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy11cGdyYWRlZCAubWRsLWljb24tdG9nZ2xlX19pbnB1dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBtaW4td2lkdGg6IDMycHg7XG4gIGNvbG9yOiByZ2IoOTcsOTcsOTcpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsLm1hdGVyaWFsLWljb25zIHtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgICBjb2xvcjogcmdiKDMzLDE1MCwyNDMpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZGlzYWJsZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgdHJhbnNpdGlvbjogbm9uZTsgfVxuICAubWRsLWljb24tdG9nZ2xlLmlzLWZvY3VzZWQgLm1kbC1pY29uLXRvZ2dsZV9fbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtaWNvbi10b2dnbGUuaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtaWNvbi10b2dnbGVfX2xhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMzLDE1MCwyNDMsIDAuMjYpOyB9XG5cbi5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogLTJweDtcbiAgbGVmdDogLTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMzZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC13ZWJraXQtbWFzay1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCB3aGl0ZSwgYmxhY2spOyB9XG4gIC5tZGwtaWNvbi10b2dnbGVfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQ6IHJnYig5Nyw5Nyw5Nyk7IH1cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAubWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1pY29uLXRvZ2dsZS5pcy1kaXNhYmxlZCAubWRsLWljb24tdG9nZ2xlX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1saXN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi5tZGwtbGlzdF9faXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTZweDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC44Nyk7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1saXN0X19pdGVtIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQge1xuICAgIG9yZGVyOiAwO1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0taWNvbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tYXZhdGFyIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDsgfVxuICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbSAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1hY3Rpb24gbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLm1kbC1saXN0X19pdGVtIC5tZGwtbGlzdF9faXRlbS1zZWNvbmRhcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWluZm8ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBjb2xvcjogcmdiYSgwLDAsMCwgMC41NCk7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0gLm1kbC1saXN0X19pdGVtLXNlY29uZGFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1zdWItaGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDE2cHg7IH1cblxuLm1kbC1saXN0X19pdGVtLWljb24sXG4ubWRsLWxpc3RfX2l0ZW0taWNvbi5tYXRlcmlhbC1pY29ucyB7XG4gIGhlaWdodDogMjRweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHJnYigxMTcsMTE3LDExNyk7IH1cblxuLm1kbC1saXN0X19pdGVtLWF2YXRhcixcbi5tZGwtbGlzdF9faXRlbS1hdmF0YXIubWF0ZXJpYWwtaWNvbnMge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigxMTcsMTE3LDExNyk7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbi5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUge1xuICBoZWlnaHQ6IDcycHg7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10d28tbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IHtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAubWRsLWxpc3RfX2l0ZW0tLXR3by1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLWF2YXRhciB7XG4gICAgICBmbG9hdDogbGVmdDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUgLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0taWNvbiB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbi10b3A6IDZweDsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdHdvLWxpbmUgLm1kbC1saXN0X19pdGVtLXByaW1hcnktY29udGVudCAubWRsLWxpc3RfX2l0ZW0tc2Vjb25kYXJ5LWNvbnRlbnQge1xuICAgICAgaGVpZ2h0OiAzNnB4OyB9XG4gICAgLm1kbC1saXN0X19pdGVtLS10d28tbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1zdWItdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjU0KTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWxpc3RfX2l0ZW0tLXRocmVlLWxpbmUge1xuICBoZWlnaHQ6IDg4cHg7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQge1xuICAgIGhlaWdodDogNTJweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5tZGwtbGlzdF9faXRlbS0tdGhyZWUtbGluZSAubWRsLWxpc3RfX2l0ZW0tcHJpbWFyeS1jb250ZW50IC5tZGwtbGlzdF9faXRlbS1hdmF0YXIsXG4gICAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1wcmltYXJ5LWNvbnRlbnQgLm1kbC1saXN0X19pdGVtLWljb24ge1xuICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1saXN0X19pdGVtLS10aHJlZS1saW5lIC5tZGwtbGlzdF9faXRlbS1zZWNvbmRhcnktY29udGVudCB7XG4gICAgaGVpZ2h0OiA1MnB4OyB9XG4gIC5tZGwtbGlzdF9faXRlbS0tdGhyZWUtbGluZSAubWRsLWxpc3RfX2l0ZW0tdGV4dC1ib2R5IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtbWVudV9fY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IC0xOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUsIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLWFuaW1hdGluZyB7XG4gICAgei1pbmRleDogOTk5O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLm1kbC1tZW51X19vdXRsaW5lIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6IHJnYigyNTUsMjU1LDI1NSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHotaW5kZXg6IC0xOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgLm1kbC1tZW51X19vdXRsaW5lIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgei1pbmRleDogOTk5OyB9XG4gIC5tZGwtbWVudV9fb3V0bGluZS5tZGwtbWVudS0tYm90dG9tLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDA7IH1cbiAgLm1kbC1tZW51X19vdXRsaW5lLm1kbC1tZW51LS10b3AtbGVmdCB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlOyB9XG4gIC5tZGwtbWVudV9fb3V0bGluZS5tZGwtbWVudS0tdG9wLXJpZ2h0IHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7IH1cblxuLm1kbC1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMTI0cHg7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtYXJnaW46IDA7XG4gIG9wYWNpdHk6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIHotaW5kZXg6IC0xOyB9XG4gIC5tZGwtbWVudV9fY29udGFpbmVyLmlzLXZpc2libGUgLm1kbC1tZW51IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHotaW5kZXg6IDk5OTsgfVxuICAubWRsLW1lbnUuaXMtYW5pbWF0aW5nIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgY2xpcCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cbiAgLm1kbC1tZW51Lm1kbC1tZW51LS1ib3R0b20tcmlnaHQge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDA7IH1cbiAgLm1kbC1tZW51Lm1kbC1tZW51LS10b3AtbGVmdCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMDsgfVxuICAubWRsLW1lbnUubWRsLW1lbnUtLXRvcC1yaWdodCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5tZGwtbWVudS5tZGwtbWVudS0tdW5hbGlnbmVkIHtcbiAgICB0b3A6IGF1dG87XG4gICAgbGVmdDogYXV0bzsgfVxuXG4ubWRsLW1lbnVfX2l0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogcmdiYSgwLDAsMCwgMC44Nyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgb3V0bGluZS1jb2xvcjogcmdiKDE4OSwxODksMTg5KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGhlaWdodDogNDhweDtcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAubWRsLW1lbnVfX2NvbnRhaW5lci5pcy12aXNpYmxlIC5tZGwtbWVudV9faXRlbSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAubWRsLW1lbnVfX2l0ZW06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDsgfVxuICAubWRsLW1lbnVfX2l0ZW0tLWZ1bGwtYmxlZWQtZGl2aWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF0sIC5tZGwtbWVudV9faXRlbVtkYXRhLW1kbC1kaXNhYmxlZF0ge1xuICAgIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5tZGwtbWVudV9faXRlbVtkaXNhYmxlZF06aG92ZXIsIC5tZGwtbWVudV9faXRlbVtkYXRhLW1kbC1kaXNhYmxlZF06aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLW1lbnVfX2l0ZW1bZGlzYWJsZWRdOmZvY3VzLCAubWRsLW1lbnVfX2l0ZW1bZGF0YS1tZGwtZGlzYWJsZWRdOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1tZW51X19pdGVtW2Rpc2FibGVkXSAubWRsLXJpcHBsZSwgLm1kbC1tZW51X19pdGVtW2RhdGEtbWRsLWRpc2FibGVkXSAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLW1lbnVfX2l0ZW06aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzgsMjM4LDIzOCk7IH1cbiAgLm1kbC1tZW51X19pdGVtOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLW1lbnVfX2l0ZW0tLXJpcHBsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLXByb2dyZXNzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0cHg7XG4gIHdpZHRoOiA1MDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5tZGwtcHJvZ3Jlc3MgPiAuYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwJTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG5cbi5tZGwtcHJvZ3Jlc3MgPiAucHJvZ3Jlc3NiYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gIHotaW5kZXg6IDE7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1wcm9ncmVzcyA+IC5idWZmZXJiYXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsIDAuNyksIHJnYmEoMjU1LDI1NSwyNTUsIDAuNykpLCBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYigzMywxNTAsMjQzKSwgcmdiKDMzLDE1MCwyNDMpKTtcbiAgei1pbmRleDogMDtcbiAgbGVmdDogMDsgfVxuXG4ubWRsLXByb2dyZXNzID4gLmF1eGJhciB7XG4gIHJpZ2h0OiAwOyB9XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lKSB7XG4gIC5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzLS1pbmRldGVybWluYXRlKSA+IC5hdXhiYXIsXG4gIC5tZGwtcHJvZ3Jlc3M6bm90KC5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUpOm5vdCgubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlKSA+IC5hdXhiYXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSwgcmdiYSgyNTUsMjU1LDI1NSwgMC43KSksIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiKDMzLDE1MCwyNDMpLCByZ2IoMzMsMTUwLDI0MykpO1xuICAgIG1hc2s6IHVybChcIi92ZW5kb3IvbWF0ZXJpYWwtZGVzaWduLWxpdGUvc3JjL2ltYWdlcy9idWZmZXIuc3ZnP2VtYmVkXCIpOyB9IH1cblxuLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyLFxuLm1kbC1wcm9ncmVzczpub3QoLm1kbC1wcm9ncmVzc19faW5kZXRlcm1pbmF0ZSkgPiAuYXV4YmFyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpLCByZ2JhKDI1NSwyNTUsMjU1LCAwLjkpKSwgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2IoMzMsMTUwLDI0MyksIHJnYigzMywxNTAsMjQzKSk7IH1cblxuLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3MtLWluZGV0ZXJtaW5hdGUgPiAuYmFyMSxcbi5tZGwtcHJvZ3Jlc3MubWRsLXByb2dyZXNzX19pbmRldGVybWluYXRlID4gLmJhcjEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gIGFuaW1hdGlvbi1uYW1lOiBpbmRldGVybWluYXRlMTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsgfVxuXG4ubWRsLXByb2dyZXNzLm1kbC1wcm9ncmVzcy0taW5kZXRlcm1pbmF0ZSA+IC5iYXIzLFxuLm1kbC1wcm9ncmVzcy5tZGwtcHJvZ3Jlc3NfX2luZGV0ZXJtaW5hdGUgPiAuYmFyMyB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTtcbiAgYW5pbWF0aW9uLW5hbWU6IGluZGV0ZXJtaW5hdGUyO1xuICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOyB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTEge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMjUlO1xuICAgIHdpZHRoOiA3NSU7IH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbkBrZXlmcmFtZXMgaW5kZXRlcm1pbmF0ZTIge1xuICAwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDUwJSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDAlOyB9XG4gIDc1JSB7XG4gICAgbGVmdDogMCU7XG4gICAgd2lkdGg6IDI1JTsgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHdpZHRoOiAwJTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICBjb2xvcjogcmdiKDY2LDY2LDY2KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvcGFjaXR5OiAwLjg3OyB9XG4gIC5tZGwtbmF2aWdhdGlvbl9fbGluayAubWF0ZXJpYWwtaWNvbnMge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLm1kbC1sYXlvdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi5tZGwtbGF5b3V0LmlzLXNtYWxsLXNjcmVlbiAubWRsLWxheW91dC0tbGFyZ2Utc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0Om5vdCguaXMtc21hbGwtc2NyZWVuKSAubWRsLWxheW91dC0tc21hbGwtc2NyZWVuLW9ubHkge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7IH1cblxuLm1kbC1sYXlvdXRfX3RpdGxlLFxuLm1kbC1sYXlvdXQtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtbGF5b3V0LXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTsgfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2IoMjI0LDIyNCwyMjQpO1xuICBiYWNrZ3JvdW5kOiByZ2IoMjUwLDI1MCwyNTApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1MHB4KTtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgY29sb3I6IHJnYig2Niw2Niw2Nik7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiA1OyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIuaXMtdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci5pcy12aXNpYmxlIH4gLm1kbC1sYXlvdXRfX2NvbnRlbnQubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAqIHtcbiAgICBmbGV4LXNocmluazogMDsgfVxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXRfX3RpdGxlLFxuICAubWRsLWxheW91dF9fZHJhd2VyID4gLm1kbC1sYXlvdXQtdGl0bGUge1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmctbGVmdDogNDBweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2RyYXdlciA+IC5tZGwtbGF5b3V0X190aXRsZSxcbiAgICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgPiAubWRsLWxheW91dC10aXRsZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBwYWRkaW5nLXRvcDogMTZweDsgfVxuICAgIC5tZGwtbGF5b3V0X19kcmF3ZXIgLm1kbC1uYXZpZ2F0aW9uIC5tZGwtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgcGFkZGluZzogMTZweCA0MHB4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgY29sb3I6ICM3NTc1NzU7IH1cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgICAgICAgIHBhZGRpbmc6IDE2cHggMTZweDsgfSB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpOyB9XG4gICAgICAubWRsLWxheW91dF9fZHJhd2VyIC5tZGwtbmF2aWdhdGlvbiAubWRsLW5hdmlnYXRpb25fX2xpbmstLWN1cnJlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LDIyNCwyMjQpO1xuICAgICAgICBjb2xvcjogcmdiKDAsMCwwKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gLm1kbC1sYXlvdXRfX2RyYXdlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH0gfVxuXG4ubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDQ4cHg7XG4gIGJvcmRlcjogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDI2cHg7XG4gIGxpbmUtaGVpZ2h0OiA1NnB4O1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiA4cHggMTJweDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTtcbiAgei1pbmRleDogNDsgfVxuICAubWRsLWxheW91dF9faGVhZGVyIC5tZGwtbGF5b3V0X19kcmF3ZXItYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6IHJnYigyNTUsMjU1LDI1NSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlciAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogNHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24ge1xuICAgICAgbGluZS1oZWlnaHQ6IDU0cHg7IH1cbiAgICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24sXG4gICAgICAubWRsLWxheW91dC0tZml4ZWQtZHJhd2VyID4gLm1kbC1sYXlvdXRfX2RyYXdlci1idXR0b24sXG4gICAgICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9fZHJhd2VyLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWluLWhlaWdodDogNjRweDtcbiAgbWF4LWhlaWdodDogMTAwMHB4O1xuICB6LWluZGV4OiAzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBtYXgtaGVpZ2h0LCBib3gtc2hhZG93OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgbWluLWhlaWdodDogNTZweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIuaXMtdXBncmFkZWQ6bm90KC5pcy1zbWFsbC1zY3JlZW4pID4gLm1kbC1sYXlvdXRfX2hlYWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0MHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyNDBweCk7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gICAgLm1kbC1sYXlvdXQtLWZpeGVkLWRyYXdlciA+IC5tZGwtbGF5b3V0X19oZWFkZXIgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA0MHB4O1xuICAgIHRvcDogMTZweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyID4gLm1kbC1sYXlvdXQtaWNvbiB7XG4gICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgIHRvcDogMTJweDsgfSB9XG4gIC5tZGwtbGF5b3V0Lmhhcy1kcmF3ZXIgLm1kbC1sYXlvdXRfX2hlYWRlciA+IC5tZGwtbGF5b3V0LWljb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0IHtcbiAgICBtYXgtaGVpZ2h0OiA2NHB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3Qge1xuICAgICAgICBtYXgtaGVpZ2h0OiA1NnB4OyB9IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci5pcy1jb21wYWN0Lmhhcy10YWJzIHtcbiAgICBoZWlnaHQ6IDExMnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLmlzLWNvbXBhY3QuaGFzLXRhYnMge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDRweDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X19oZWFkZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1oZWFkZXIgPiAubWRsLWxheW91dF9faGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS10cmFuc3BhcmVudC5tZGwtbGF5b3V0X19oZWFkZXItLXRyYW5zcGFyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7IH1cblxuLm1kbC1sYXlvdXRfX2hlYWRlci0tc2VhbWVkIHtcbiAgYm94LXNoYWRvdzogbm9uZTsgfVxuXG4ubWRsLWxheW91dF9faGVhZGVyLS1zY3JvbGwge1xuICBib3gtc2hhZG93OiBub25lOyB9XG5cbi5tZGwtbGF5b3V0X19oZWFkZXItLXdhdGVyZmFsbCB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLmlzLWNhc3Rpbmctc2hhZG93IHtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLm1kbC1sYXlvdXRfX2hlYWRlci0td2F0ZXJmYWxsLWhpZGUtdG9wIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5tZGwtbGF5b3V0X19oZWFkZXItcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDY0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA0MHB4IDAgODBweDsgfVxuICAubWRsLWxheW91dC0tbm8tZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9faGVhZGVyLXJvdyB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiA0MHB4OyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgcGFkZGluZzogMCAxNnB4IDAgNzJweDsgfVxuICAgICAgLm1kbC1sYXlvdXQtLW5vLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyA+ICoge1xuICAgIGZsZXgtc2hyaW5rOiAwOyB9XG4gIC5tZGwtbGF5b3V0X19oZWFkZXItLXNjcm9sbCAubWRsLWxheW91dF9faGVhZGVyLXJvdyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb24ge1xuICAgICAgICBoZWlnaHQ6IDU2cHg7IH0gfVxuICAubWRsLWxheW91dF9faGVhZGVyLXJvdyAubWRsLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHBhZGRpbmc6IDAgMjRweDsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgICAgLm1kbC1sYXlvdXRfX2hlYWRlci1yb3cgLm1kbC1uYXZpZ2F0aW9uX19saW5rIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDsgfSB9XG5cbi5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA0O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQtY29sb3I7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtbGF5b3V0X19vYmZ1c2NhdG9yLmlzLXZpc2libGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIEBzdXBwb3J0cyAocG9pbnRlci1ldmVudHM6IGF1dG8pIHtcbiAgICAubWRsLWxheW91dF9fb2JmdXNjYXRvciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgLm1kbC1sYXlvdXRfX29iZnVzY2F0b3IuaXMtdmlzaWJsZSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxOyB9IH1cblxuLm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAtbXMtZmxleDogMCAxIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgei1pbmRleDogMTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0MHB4OyB9XG4gIC5tZGwtbGF5b3V0X19jb250YWluZXIuaGFzLXNjcm9sbGluZy1oZWFkZXIgLm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0LS1maXhlZC1kcmF3ZXIgPiAubWRsLWxheW91dF9fY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5tZGwtbGF5b3V0X19jb250YWluZXIuaGFzLXNjcm9sbGluZy1oZWFkZXIgLm1kbC1sYXlvdXRfX2NvbnRlbnQge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgfSB9XG5cbi5tZGwtbGF5b3V0X190YWItYmFyIHtcbiAgaGVpZ2h0OiA5NnB4O1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAxMTJweCk7XG4gIHBhZGRpbmc6IDAgMCAwIDU2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7IH1cbiAgLm1kbC1sYXlvdXRfX3RhYi1iYXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGwtbGF5b3V0LS1uby1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAgIC5tZGwtbGF5b3V0LS1uby1kZXNrdG9wLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMycHgpOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICAgICAgcGFkZGluZzogMCAwIDAgNjBweDsgfVxuICAgICAgLm1kbC1sYXlvdXQtLW5vLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX3RhYi1iYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gOHB4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7IH0gfVxuICAubWRsLWxheW91dC0tZml4ZWQtdGFicyAubWRsLWxheW91dF9fdGFiLWJhciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi5tZGwtbGF5b3V0X190YWItYmFyLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA0OHB4O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHotaW5kZXg6IDI7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLm1kbC1sYXlvdXRfX2NvbnRhaW5lciA+IC5tZGwtbGF5b3V0X190YWItYmFyLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwOyB9XG5cbi5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IDU2cHg7XG4gIHotaW5kZXg6IDQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm1kbC1sYXlvdXQtLW5vLWRlc2t0b3AtZHJhd2VyLWJ1dHRvbiAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24sXG4gIC5tZGwtbGF5b3V0LS1uby1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDE2cHg7IH1cbiAgICAubWRsLWxheW91dC0tbm8tZGVza3RvcC1kcmF3ZXItYnV0dG9uIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiAubWF0ZXJpYWwtaWNvbnMsXG4gICAgLm1kbC1sYXlvdXQtLW5vLWRyYXdlci1idXR0b24gLm1kbC1sYXlvdXRfX3RhYi1iYXItYnV0dG9uIC5tYXRlcmlhbC1pY29ucyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAtNHB4OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogNjBweDsgfSB9XG4gIC5tZGwtbGF5b3V0LS1maXhlZC10YWJzIC5tZGwtbGF5b3V0X190YWItYmFyLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24gLm1hdGVyaWFsLWljb25zIHtcbiAgICBsaW5lLWhlaWdodDogNDhweDsgfVxuICAubWRsLWxheW91dF9fdGFiLWJhci1idXR0b24uaXMtYWN0aXZlIHtcbiAgICBjb2xvcjogcmdiKDI1NSwyNTUsMjU1KTsgfVxuXG4ubWRsLWxheW91dF9fdGFiLWJhci1sZWZ0LWJ1dHRvbiB7XG4gIGxlZnQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYi1iYXItcmlnaHQtYnV0dG9uIHtcbiAgcmlnaHQ6IDA7IH1cblxuLm1kbC1sYXlvdXRfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleC1ncm93OiAwO1xuICBmbGV4LXNocmluazogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsIDAuNik7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gICAgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgICBwYWRkaW5nOiAwIDEycHggMCAxMnB4OyB9IH1cbiAgLm1kbC1sYXlvdXQtLWZpeGVkLXRhYnMgLm1kbC1sYXlvdXRfX3RhYiB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm1kbC1sYXlvdXQuaXMtdXBncmFkZWQgLm1kbC1sYXlvdXRfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG4gIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkIC5tZGwtbGF5b3V0X190YWIuaXMtYWN0aXZlOjphZnRlciB7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogXCIgXCI7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYigxOTQsMjQsOTEpO1xuICAgIGFuaW1hdGlvbjogYm9yZGVyLWV4cGFuZCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDAuNCwgMSkgMC4wMXMgYWx0ZXJuYXRlIGZvcndhcmRzO1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTsgfVxuICAubWRsLWxheW91dF9fdGFiIC5tZGwtbGF5b3V0X190YWItcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAubWRsLWxheW91dF9fdGFiIC5tZGwtbGF5b3V0X190YWItcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpOyB9XG5cbi5tZGwtbGF5b3V0X190YWItcGFuZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRsLWxheW91dC5pcy11cGdyYWRlZCAubWRsLWxheW91dF9fdGFiLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5tZGwtbGF5b3V0LmlzLXVwZ3JhZGVkIC5tZGwtbGF5b3V0X190YWItcGFuZWwuaXMtYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC1yYWRpbyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5tZGwtcmFkaW8uaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDsgfVxuXG4ubWRsLXJhZGlvX19idXR0b24ge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLXJhZGlvLmlzLXVwZ3JhZGVkIC5tZGwtcmFkaW9fX2J1dHRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC1tcy1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7IH1cblxuLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC41NCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgei1pbmRleDogMjsgfVxuICAubWRsLXJhZGlvLmlzLWNoZWNrZWQgLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgLm1kbC1yYWRpb19fb3V0ZXItY2lyY2xlIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXJhZGlvLFxuICAubWRsLXJhZGlvLmlzLWRpc2FibGVkIC5tZGwtcmFkaW9fX291dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgbWFyZ2luOiAwO1xuICB0b3A6IDhweDtcbiAgbGVmdDogNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI4cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgLm1kbC1yYWRpby5pcy1jaGVja2VkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1yYWRpbyAubWRsLXJhZGlvX19pbm5lci1jaXJjbGUsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19faW5uZXItY2lyY2xlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLm1kbC1yYWRpby5pcy1mb2N1c2VkIC5tZGwtcmFkaW9fX2lubmVyLWNpcmNsZSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsgfVxuXG4ubWRsLXJhZGlvX19sYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1yYWRpbyAubWRsLXJhZGlvX19sYWJlbCxcbiAgLm1kbC1yYWRpby5pcy1kaXNhYmxlZCAubWRsLXJhZGlvX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXJhZGlvX19yaXBwbGUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICB0b3A6IC05cHg7XG4gIGxlZnQ6IC0xM3B4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHdoaXRlLCBibGFjayk7IH1cbiAgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXJhZGlvIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciB7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXJhZGlvIC5tZGwtcmFkaW9fX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtcmFkaW8uaXMtZGlzYWJsZWQgLm1kbC1yYWRpb19fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbl86LW1zLWlucHV0LXBsYWNlaG9sZGVyLCA6cm9vdCAubWRsLXNsaWRlci5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkIHtcbiAgLW1zLWFwcGVhcmFuY2U6IG5vbmU7XG4gIGhlaWdodDogMzJweDtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtc2xpZGVyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICBtYXJnaW46IDAgMjBweDsgfVxuICAubWRsLXNsaWRlci5pcy11cGdyYWRlZCB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6IHJnYigzMywxNTAsMjQzKTtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVHJhY2tzICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogVGh1bWJzICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiogMC12YWx1ZSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqIERpc2FibGVkICoqKioqKioqKioqKioqKioqKioqKioqKioqKiovIH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1vei1mb2N1cy1vdXRlciB7XG4gICAgICBib3JkZXI6IDA7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDo6LW1zLXRvb2x0aXAge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy10cmFjayB7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtZmlsbC1sb3dlciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMTZweCwgcmdiKDMzLDE1MCwyNDMpIDE2cHgsIHJnYigzMywxNTAsMjQzKSAwKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAxNnB4LCByZ2JhKDAsMCwwLCAwLjI2KSAxNnB4LCByZ2JhKDAsMCwwLCAwLjI2KSAwKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMzMsMTUwLDI0Myk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYm9yZGVyIDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJveC1zaGFkb3cgMC4xOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgYmFja2dyb3VuZCAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYigzMywxNTAsMjQzKTtcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDMzLDE1MCwyNDMsIDAuMjYpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Zm9jdXM6bm90KDphY3RpdmUpOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgzMywxNTAsMjQzLCAwLjI2KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYigzMywxNTAsMjQzKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6Oi1tcy10aHVtYiB7XG4gICAgICB3aWR0aDogMzJweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYigzMywxNTAsMjQzKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4zNzUpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIGJhY2tncm91bmQgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1zLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUgY2xvc2VzdC1zaWRlLCByZ2IoMzMsMTUwLDI0MykgMCUsIHJnYigzMywxNTAsMjQzKSAzNy41JSwgcmdiYSgzMywxNTAsMjQzLCAwLjI2KSAzNy41JSwgcmdiYSgzMywxNTAsMjQzLCAwLjI2KSAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDphY3RpdmU6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2IoMzMsMTUwLDI0Myk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTYyNSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLDAsMCwgMC4yNik7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZSArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMTIpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmZvY3VzOm5vdCg6YWN0aXZlKTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4xMik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3JkZXI6IDEuNnB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZSArXG4ubWRsLXNsaWRlcl9fYmFja2dyb3VuZC1mbGV4ID4gLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtdXBwZXIge1xuICAgICAgbGVmdDogOXB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCA2Ni42NyUsIHJnYmEoMCwwLDAsIDAuMjYpIDY2LjY3JSwgcmdiYSgwLDAsMCwgMC4yNikgMTAwJSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Zm9jdXM6bm90KDphY3RpdmUpOjotbXMtdGh1bWIge1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsIHJnYmEoMCwwLDAsIDAuMTIpIDAlLCByZ2JhKDAsMCwwLCAwLjEyKSAyNSUsIHJnYmEoMCwwLDAsIDAuMjYpIDI1JSwgcmdiYSgwLDAsMCwgMC4yNikgMzcuNSUsIHJnYmEoMCwwLDAsIDAuMTIpIDM3LjUlLCByZ2JhKDAsMCwwLCAwLjEyKSAxMDAlKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6YWN0aXZlOjotbXMtdGh1bWIge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjU2MjUpO1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCA3Ny43OCUsIHJnYmEoMCwwLDAsIDAuMjYpIDc3Ljc4JSwgcmdiYSgwLDAsMCwgMC4yNikgMTAwJSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmFjdGl2ZTo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDlweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOmZvY3VzOjotd2Via2l0LXNsaWRlci10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC42NjcpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDpmb2N1czo6LW1vei1yYW5nZS10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6YWN0aXZlOjotbW96LXJhbmdlLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNjY3KTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQgK1xuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtZmxleCA+IC5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWxvd2VyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICAgICAgbGVmdDogLTZweDsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi13ZWJraXQtc2xpZGVyLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi1tb3otcmFuZ2UtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDphY3RpdmU6Oi1tb3otcmFuZ2UtdGh1bWIsIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkLmlzLWxvd2VzdC12YWx1ZTpkaXNhYmxlZDo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjI2KTtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjY2Nyk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6YWN0aXZlICtcbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXggPiAubWRsLXNsaWRlcl9fYmFja2dyb3VuZC11cHBlciB7XG4gICAgICBsZWZ0OiA2cHg7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDpmb2N1czo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDphY3RpdmU6Oi1tcy10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQ6ZGlzYWJsZWQ6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Zm9jdXM6Oi1tcy10aHVtYiwgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1zLXRodW1iLCAubWRsLXNsaWRlci5pcy11cGdyYWRlZC5pcy1sb3dlc3QtdmFsdWU6ZGlzYWJsZWQ6Oi1tcy10aHVtYiB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xuICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBjbG9zZXN0LXNpZGUsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMCwwLDAsIDAuMjYpIDUwJSwgcmdiYSgwLDAsMCwgMC4yNikgMTAwJSk7IH1cbiAgICAubWRsLXNsaWRlci5pcy11cGdyYWRlZDpkaXNhYmxlZDo6LW1zLWZpbGwtbG93ZXIge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAyNXB4LCByZ2JhKDAsMCwwLCAwLjI2KSAyNXB4LCByZ2JhKDAsMCwwLCAwLjI2KSAwKTsgfVxuICAgIC5tZGwtc2xpZGVyLmlzLXVwZ3JhZGVkOmRpc2FibGVkOjotbXMtZmlsbC11cHBlciB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4OyB9XG4gICAgLm1kbC1zbGlkZXIuaXMtdXBncmFkZWQuaXMtbG93ZXN0LXZhbHVlOmRpc2FibGVkOmFjdGl2ZTo6LW1zLWZpbGwtdXBwZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDsgfVxuXG4ubWRsLXNsaWRlcl9faWUtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiAxOHB4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IG5vbmU7XG4gIHBhZGRpbmc6IG5vbmU7IH1cblxuLm1kbC1zbGlkZXJfX2NvbnRhaW5lciB7XG4gIGhlaWdodDogMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLWZsZXgge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDJweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDUycHgpO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiAwIDI2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTFweCk7IH1cblxuLm1kbC1zbGlkZXJfX2JhY2tncm91bmQtbG93ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2IoMzMsMTUwLDI0Myk7XG4gIGZsZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5tZGwtc2xpZGVyX19iYWNrZ3JvdW5kLXVwcGVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwgMC4yNik7XG4gIGZsZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDAuMThzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtc25hY2tiYXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogNTAlO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMjMyMzI7XG4gIHotaW5kZXg6IDM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDgwcHgpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5tZGwtc25hY2tiYXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgIG1heC1oZWlnaHQ6IDgwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAubWRsLXNuYWNrYmFyIHtcbiAgICAgIG1pbi13aWR0aDogMjg4cHg7XG4gICAgICBtYXgtd2lkdGg6IDU2OHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgODBweCk7IH0gfVxuICAubWRsLXNuYWNrYmFyLS1hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgLm1kbC1zbmFja2Jhci0tYWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH0gfVxuICAubWRsLXNuYWNrYmFyX190ZXh0IHtcbiAgICBwYWRkaW5nOiAxNHB4IDEycHggMTRweCAyNHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5tZGwtc25hY2tiYXJfX2FjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiByZ2IoMTk0LDI0LDkxKTtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nOiAxNHB4IDI0cHggMTRweCAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7IH1cbiAgICAubWRsLXNuYWNrYmFyX19hY3Rpb246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwOyB9XG4gICAgLm1kbC1zbmFja2Jhcl9fYWN0aW9uOm5vdChbYXJpYS1oaWRkZW5dKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtc3Bpbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4OyB9XG4gIC5tZGwtc3Bpbm5lcjpub3QoLmlzLXVwZ3JhZGVkKS5pcy1hY3RpdmU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTG9hZGluZy4uLlwiOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy11cGdyYWRlZC5pcy1hY3RpdmUge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2NvbnRhaW5lci1yb3RhdGUgMTU2OC4yMzUyOTQxMm1zIGxpbmVhciBpbmZpbml0ZTsgfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19jb250YWluZXItcm90YXRlIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4ubWRsLXNwaW5uZXJfX2xheWVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMSB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDY2LDE2NSwyNDUpOyB9XG4gIC5tZGwtc3Bpbm5lci0tc2luZ2xlLWNvbG9yIC5tZGwtc3Bpbm5lcl9fbGF5ZXItMSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgLm1kbC1zcGlubmVyLmlzLWFjdGl2ZSAubWRsLXNwaW5uZXJfX2xheWVyLTEge1xuICAgIGFuaW1hdGlvbjogbWRsLXNwaW5uZXJfX2ZpbGwtdW5maWxsLXJvdGF0ZSA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoLCBtZGwtc3Bpbm5lcl9fbGF5ZXItMS1mYWRlLWluLW91dCA1MzMybXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSBpbmZpbml0ZSBib3RoOyB9XG5cbi5tZGwtc3Bpbm5lcl9fbGF5ZXItMiB7XG4gIGJvcmRlci1jb2xvcjogcmdiKDI0NCw2Nyw1NCk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGF5ZXItMiB7XG4gICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIG1kbC1zcGlubmVyX19sYXllci0yLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cblxuLm1kbC1zcGlubmVyX19sYXllci0zIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoMjUzLDIxNiw1Myk7IH1cbiAgLm1kbC1zcGlubmVyLS1zaW5nbGUtY29sb3IgLm1kbC1zcGlubmVyX19sYXllci0zIHtcbiAgICBib3JkZXItY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGF5ZXItMyB7XG4gICAgYW5pbWF0aW9uOiBtZGwtc3Bpbm5lcl9fZmlsbC11bmZpbGwtcm90YXRlIDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGgsIG1kbC1zcGlubmVyX19sYXllci0zLWZhZGUtaW4tb3V0IDUzMzJtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cblxuLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2IoNzYsMTc1LDgwKTsgfVxuICAubWRsLXNwaW5uZXItLXNpbmdsZS1jb2xvciAubWRsLXNwaW5uZXJfX2xheWVyLTQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDMzLDE1MCwyNDMpOyB9XG4gIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19sYXllci00IHtcbiAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aCwgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQgNTMzMm1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19maWxsLXVuZmlsbC1yb3RhdGUge1xuICAxMi41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgfVxuICAyNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7IH1cbiAgMzcuNSUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQwNWRlZyk7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1NDBkZWcpOyB9XG4gIDYyLjUlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg2NzVkZWcpOyB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoODEwZGVnKTsgfVxuICA4Ny41JSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTQ1ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTA4MGRlZyk7IH0gfVxuXG4vKipcbiogSEFDSzogRXZlbiB0aG91Z2ggdGhlIGludGVudGlvbiBpcyB0byBoYXZlIHRoZSBjdXJyZW50IC5tZGwtc3Bpbm5lcl9fbGF5ZXItTlxuKiBhdCBgb3BhY2l0eTogMWAsIHdlIHNldCBpdCB0byBgb3BhY2l0eTogMC45OWAgaW5zdGVhZCBzaW5jZSB0aGlzIGZvcmNlcyBDaHJvbWVcbiogdG8gZG8gcHJvcGVyIHN1YnBpeGVsIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnRzIGJlaW5nIGFuaW1hdGVkLiBUaGlzIGlzXG4qIGVzcGVjaWFsbHkgdmlzaWJsZSBpbiBDaHJvbWUgMzkgb24gVWJ1bnR1IDE0LjA0LiBTZWU6XG4qXG4qIC0gaHR0cHM6Ly9naXRodWIuY29tL1BvbHltZXIvcGFwZXItc3Bpbm5lci9pc3N1ZXMvOVxuKiAtIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00MzYyNTVcbiovXG5Aa2V5ZnJhbWVzIG1kbC1zcGlubmVyX19sYXllci0xLWZhZGUtaW4tb3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMC45OTsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMjYlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDg5JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA5MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC45OTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTItZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDE1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAyNSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDUxJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTMtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDc2JSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX2xheWVyLTQtZmFkZS1pbi1vdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDY1JSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA3NSUge1xuICAgIG9wYWNpdHk6IDAuOTk7IH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAwLjk5OyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKipcbiogUGF0Y2ggdGhlIGdhcCB0aGF0IGFwcGVhciBiZXR3ZWVuIHRoZSB0d28gYWRqYWNlbnRcbiogZGl2Lm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlciB3aGlsZSB0aGUgc3Bpbm5lciBpcyByb3RhdGluZ1xuKiAoYXBwZWFycyBvbiBDaHJvbWUgMzgsIFNhZmFyaSA3LjEsIGFuZCBJRSAxMSkuXG4qXG4qIFVwZGF0ZTogdGhlIGdhcCBubyBsb25nZXIgYXBwZWFycyBvbiBDaHJvbWUgd2hlbiAubWRsLXNwaW5uZXJfX2xheWVyLU4nc1xuKiBvcGFjaXR5IGlzIDAuOTksIGJ1dCBzdGlsbCBkb2VzIG9uIFNhZmFyaSBhbmQgSUUuXG4qL1xuLm1kbC1zcGlubmVyX19nYXAtcGF0Y2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRvcDogMDtcbiAgbGVmdDogNDUlO1xuICB3aWR0aDogMTAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDsgfVxuICAubWRsLXNwaW5uZXJfX2dhcC1wYXRjaCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgd2lkdGg6IDEwMDAlO1xuICAgIGxlZnQ6IC00NTAlOyB9XG5cbi5tZGwtc3Bpbm5lcl9fY2lyY2xlLWNsaXBwZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItY29sb3I6IGluaGVyaXQ7IH1cbiAgLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlci5tZGwtc3Bpbm5lcl9fbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cbiAgLm1kbC1zcGlubmVyX19jaXJjbGUtY2xpcHBlci5tZGwtc3Bpbm5lcl9fcmlnaHQge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAubWRsLXNwaW5uZXJfX2NpcmNsZS1jbGlwcGVyIC5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgICB3aWR0aDogMjAwJTsgfVxuXG4ubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXdpZHRoOiAzcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwOyB9XG4gIC5tZGwtc3Bpbm5lcl9fbGVmdCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDEyOWRlZyk7IH1cbiAgICAubWRsLXNwaW5uZXIuaXMtYWN0aXZlIC5tZGwtc3Bpbm5lcl9fbGVmdCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19sZWZ0LXNwaW4gMTMzM21zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgaW5maW5pdGUgYm90aDsgfVxuICAubWRsLXNwaW5uZXJfX3JpZ2h0IC5tZGwtc3Bpbm5lcl9fY2lyY2xlIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTI5ZGVnKTsgfVxuICAgIC5tZGwtc3Bpbm5lci5pcy1hY3RpdmUgLm1kbC1zcGlubmVyX19yaWdodCAubWRsLXNwaW5uZXJfX2NpcmNsZSB7XG4gICAgICBhbmltYXRpb246IG1kbC1zcGlubmVyX19yaWdodC1zcGluIDEzMzNtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGluZmluaXRlIGJvdGg7IH1cblxuQGtleWZyYW1lcyBtZGwtc3Bpbm5lcl9fbGVmdC1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC01ZGVnKTsgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTMwZGVnKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWRsLXNwaW5uZXJfX3JpZ2h0LXNwaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDVkZWcpOyB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTMwZGVnKTsgfSB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogVHlwb2dyYXBoeSAqL1xuLyogU2hhZG93cyAqL1xuLyogQW5pbWF0aW9ucyAqL1xuLyogRGlhbG9nICovXG4ubWRsLXN3aXRjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLm1kbC1zd2l0Y2guaXMtdXBncmFkZWQge1xuICAgIHBhZGRpbmctbGVmdDogMjhweDsgfVxuXG4ubWRsLXN3aXRjaF9faW5wdXQge1xuICBsaW5lLWhlaWdodDogMjRweDsgfVxuICAubWRsLXN3aXRjaC5pcy11cGdyYWRlZCAubWRsLXN3aXRjaF9faW5wdXQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtbXMtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lOyB9XG5cbi5tZGwtc3dpdGNoX190cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogNXB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm1kbC1zd2l0Y2guaXMtY2hlY2tlZCAubWRsLXN3aXRjaF9fdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzMsMTUwLDI0MywgMC41KTsgfVxuICAubWRsLXN3aXRjaF9fdHJhY2sgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtc3dpdGNoLFxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fdHJhY2sge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXN3aXRjaF9fdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2IoMjUwLDI1MCwyNTApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjI4cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7IH1cbiAgLm1kbC1zd2l0Y2guaXMtY2hlY2tlZCAubWRsLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYigzMywxNTAsMjQzKTtcbiAgICBsZWZ0OiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuICAubWRsLXN3aXRjaF9fdGh1bWIgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtc3dpdGNoLFxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYigxODksMTg5LDE4OSk7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG5cbi5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC00cHgsIC00cHgpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gIC5tZGwtc3dpdGNoLmlzLWZvY3VzZWQgLm1kbC1zd2l0Y2hfX2ZvY3VzLWhlbHBlciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDBweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSk7IH1cbiAgLm1kbC1zd2l0Y2guaXMtZm9jdXNlZC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19mb2N1cy1oZWxwZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwcHggMjBweCByZ2JhKDMzLDE1MCwyNDMsIDAuMjYpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzMsMTUwLDI0MywgMC4yNik7IH1cblxuLm1kbC1zd2l0Y2hfX2xhYmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIG1hcmdpbjogMDtcbiAgbGVmdDogMjRweDsgfVxuICAubWRsLXN3aXRjaF9fbGFiZWwgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtc3dpdGNoLFxuICAubWRsLXN3aXRjaC5pcy1kaXNhYmxlZCAubWRsLXN3aXRjaF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2IoMTg5LDE4OSwxODkpO1xuICAgIGN1cnNvcjogYXV0bzsgfVxuXG4ubWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAtMTJweDtcbiAgbGVmdDogLTE0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgd2hpdGUsIGJsYWNrKTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40MHM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwLWVuZDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsgfVxuICAubWRsLXN3aXRjaF9fcmlwcGxlLWNvbnRhaW5lciAubWRsLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpOyB9XG4gIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXN3aXRjaCxcbiAgLm1kbC1zd2l0Y2guaXMtZGlzYWJsZWQgLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIge1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICBmaWVsZHNldFtkaXNhYmxlZF0gLm1kbC1zd2l0Y2ggLm1kbC1zd2l0Y2hfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUsXG4gIC5tZGwtc3dpdGNoLmlzLWRpc2FibGVkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIC5tZGwtcmlwcGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAubWRsLXN3aXRjaC5pcy1jaGVja2VkIC5tZGwtc3dpdGNoX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBsZWZ0OiAycHg7IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi5tZGwtdGFicyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLXRhYnNfX3RhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGhlaWdodDogNDhweDtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKDIyNCwyMjQsMjI0KTsgfVxuXG4ubWRsLXRhYnNfX3RhYiB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwIDI0cHggMCAyNHB4O1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBoZWlnaHQ6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuNTQpO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5tZGwtdGFicy5pcy11cGdyYWRlZCAubWRsLXRhYnNfX3RhYi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjg3KTsgfVxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX190YWIuaXMtYWN0aXZlOmFmdGVyIHtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIiBcIjtcbiAgICBib3R0b206IDBweDtcbiAgICBsZWZ0OiAwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHJnYigzMywxNTAsMjQzKTtcbiAgICBhbmltYXRpb246IGJvcmRlci1leHBhbmQgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjQsIDEpIDAuMDFzIGFsdGVybmF0ZSBmb3J3YXJkcztcbiAgICB0cmFuc2l0aW9uOiBhbGwgMXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7IH1cbiAgLm1kbC10YWJzX190YWIgLm1kbC10YWJzX19yaXBwbGUtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6IDBweDtcbiAgICB0b3A6IDBweDtcbiAgICB6LWluZGV4OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAubWRsLXRhYnNfX3RhYiAubWRsLXRhYnNfX3JpcHBsZS1jb250YWluZXIgLm1kbC1yaXBwbGUge1xuICAgICAgYmFja2dyb3VuZDogcmdiKDMzLDE1MCwyNDMpOyB9XG5cbi5tZGwtdGFic19fcGFuZWwge1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX19wYW5lbCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAubWRsLXRhYnMuaXMtdXBncmFkZWQgLm1kbC10YWJzX19wYW5lbC5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbkBrZXlmcmFtZXMgYm9yZGVyLWV4cGFuZCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAwOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgd2lkdGg6IDEwMCU7IH0gfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qIFR5cG9ncmFwaHkgKi9cbi8qIFNoYWRvd3MgKi9cbi8qIEFuaW1hdGlvbnMgKi9cbi8qIERpYWxvZyAqL1xuLm1kbC10ZXh0ZmllbGQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMzAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAyMHB4IDA7IH1cbiAgLm1kbC10ZXh0ZmllbGQgLm1kbC1idXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDIwcHg7IH1cblxuLm1kbC10ZXh0ZmllbGQtLWFsaWduLXJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuLm1kbC10ZXh0ZmllbGQtLWZ1bGwtd2lkdGgge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubWRsLXRleHRmaWVsZC0tZXhwYW5kYWJsZSB7XG4gIG1pbi13aWR0aDogMzJweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDMycHg7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWV4cGFuZGFibGUgLm1kbC1idXR0b24tLWljb24ge1xuICAgIHRvcDogMTZweDsgfVxuXG4ubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLCAwLjEyKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiA0cHggMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiBpbmhlcml0OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19pbnB1dFt0eXBlPVwibnVtYmVyXCJdIHtcbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgfVxuICAubWRsLXRleHRmaWVsZF9faW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgLm1kbC10ZXh0ZmllbGRfX2lucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtZm9jdXNlZCAubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9faW5wdXQge1xuICAgIGJvcmRlci1jb2xvcjogcmdiKDIxMywwLDApO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgZmllbGRzZXRbZGlzYWJsZWRdIC5tZGwtdGV4dGZpZWxkIC5tZGwtdGV4dGZpZWxkX19pbnB1dCxcbiAgLm1kbC10ZXh0ZmllbGQuaXMtZGlzYWJsZWQgLm1kbC10ZXh0ZmllbGRfX2lucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIHJnYmEoMCwwLDAsIDAuMTIpO1xuICAgIGNvbG9yOiByZ2JhKDAsMCwwLCAwLjI2KTsgfVxuXG4ubWRsLXRleHRmaWVsZCB0ZXh0YXJlYS5tZGwtdGV4dGZpZWxkX19pbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gIGJvdHRvbTogMDtcbiAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdG9wOiAyNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1kaXJ0eSAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLmhhcy1wbGFjZWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyB9XG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5oYXMtcGxhY2Vob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2xhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gIGZpZWxkc2V0W2Rpc2FibGVkXSAubWRsLXRleHRmaWVsZCAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLmlzLWRpc2FibGVkLmlzLWRpc2FibGVkIC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgY29sb3I6IHJnYmEoMCwwLDAsIDAuMjYpOyB9XG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmhhcy1wbGFjZWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHRvcDogNHB4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCxcbiAgLm1kbC10ZXh0ZmllbGQtLWZsb2F0aW5nLWxhYmVsLmlzLWRpcnR5IC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWwsXG4gIC5tZGwtdGV4dGZpZWxkLS1mbG9hdGluZy1sYWJlbC5oYXMtcGxhY2Vob2xkZXIgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIC5tZGwtdGV4dGZpZWxkX19sYWJlbCB7XG4gICAgdG9wOiAtMTZweDsgfVxuICAubWRsLXRleHRmaWVsZC0tZmxvYXRpbmctbGFiZWwuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fbGFiZWwge1xuICAgIGNvbG9yOiByZ2IoMjEzLDAsMCk7XG4gICAgZm9udC1zaXplOiAxMnB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19sYWJlbDphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBsZWZ0OiA0NSU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMHB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWZvY3VzZWQgLm1kbC10ZXh0ZmllbGRfX2xhYmVsOmFmdGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC10ZXh0ZmllbGQuaXMtaW52YWxpZCAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMTMsMCwwKTsgfVxuXG4ubWRsLXRleHRmaWVsZF9fZXJyb3Ige1xuICBjb2xvcjogcmdiKDIxMywwLDApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5tZGwtdGV4dGZpZWxkLmlzLWludmFsaWQgLm1kbC10ZXh0ZmllbGRfX2Vycm9yIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMzJweDtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAwLjFweDsgfVxuICAubWRsLXRleHRmaWVsZC5pcy1mb2N1c2VkIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciwgLm1kbC10ZXh0ZmllbGQuaXMtZGlydHkgLm1kbC10ZXh0ZmllbGRfX2V4cGFuZGFibGUtaG9sZGVyIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4OyB9XG4gIC5tZGwtdGV4dGZpZWxkX19leHBhbmRhYmxlLWhvbGRlciAubWRsLXRleHRmaWVsZF9fbGFiZWw6YWZ0ZXIge1xuICAgIGJvdHRvbTogMDsgfVxuXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKiAgICAkQ09OVEVOVFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKipcbiAqIFNUWUxFIEdVSURFIFZBUklBQkxFUy0tLS0tLS0tLS0tLS0tLS0tLURlY2xhcmF0aW9ucyBvZiBTYXNzIHZhcmlhYmxlc1xuICogLS0tLS1UeXBvZ3JhcGh5XG4gKiAtLS0tLUNvbG9yc1xuICogLS0tLS1UZXh0ZmllbGRcbiAqIC0tLS0tU3dpdGNoXG4gKiAtLS0tLVNwaW5uZXJcbiAqIC0tLS0tUmFkaW9cbiAqIC0tLS0tTWVudVxuICogLS0tLS1MaXN0XG4gKiAtLS0tLUxheW91dFxuICogLS0tLS1JY29uIHRvZ2dsZXNcbiAqIC0tLS0tRm9vdGVyXG4gKiAtLS0tLUNvbHVtblxuICogLS0tLS1DaGVja2JveFxuICogLS0tLS1DYXJkXG4gKiAtLS0tLUJ1dHRvblxuICogLS0tLS1BbmltYXRpb25cbiAqIC0tLS0tUHJvZ3Jlc3NcbiAqIC0tLS0tQmFkZ2VcbiAqIC0tLS0tU2hhZG93c1xuICogLS0tLS1HcmlkXG4gKiAtLS0tLURhdGEgdGFibGVcbiAqIC0tLS0tRGlhbG9nXG4gKiAtLS0tLVNuYWNrYmFyXG4gKiAtLS0tLVRvb2x0aXBcbiAqIC0tLS0tQ2hpcFxuICpcbiAqIEV2ZW4gdGhvdWdoIGFsbCB2YXJpYWJsZXMgaGF2ZSB0aGUgYCFkZWZhdWx0YCBkaXJlY3RpdmUsIG1vc3Qgb2YgdGhlbVxuICogc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGFzIHRoZXkgYXJlIGRlcGVuZGVudCBvbmUgYW5vdGhlci4gVGhpcyBjYW4gY2F1c2VcbiAqIHZpc3VhbCBkaXN0b3J0aW9ucyAobGlrZSBhbGlnbm1lbnQgaXNzdWVzKSB0aGF0IGFyZSBoYXJkIHRvIHRyYWNrIGRvd25cbiAqIGFuZCBmaXguXG4gKi9cbi8qID09PT09PT09PT0gIFRZUE9HUkFQSFkgID09PT09PT09PT0gKi9cbi8qIFdlJ3JlIHNwbGl0dGluZyBmb250cyBpbnRvIFwicHJlZmVycmVkXCIgYW5kIFwicGVyZm9ybWFuY2VcIiBpbiBvcmRlciB0byBvcHRpbWl6ZVxuICAgcGFnZSBsb2FkaW5nLiBGb3IgaW1wb3J0YW50IHRleHQsIHN1Y2ggYXMgdGhlIGJvZHksIHdlIHdhbnQgaXQgdG8gbG9hZFxuICAgaW1tZWRpYXRlbHkgYW5kIG5vdCB3YWl0IGZvciB0aGUgd2ViIGZvbnQgbG9hZCwgd2hlcmVhcyBmb3Igb3RoZXIgc2VjdGlvbnMsXG4gICBzdWNoIGFzIGhlYWRlcnMgYW5kIHRpdGxlcywgd2UncmUgT0sgd2l0aCB0aGluZ3MgdGFraW5nIGEgYml0IGxvbmdlciB0byBsb2FkLlxuICAgV2UgZG8gaGF2ZSBzb21lIG9wdGlvbmFsIGNsYXNzZXMgYW5kIHBhcmFtZXRlcnMgaW4gdGhlIG1peGlucywgaW4gY2FzZSB5b3VcbiAgIGRlZmluaXRlbHkgd2FudCB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIHRoZSBwcmVmZXJyZWQgZm9udCBhbmQgZG9uJ3QgbWluZFxuICAgdGhlIHBlcmZvcm1hbmNlIGhpdC5cbiAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIGltcHJvdmUgb24gdGhpcyBvbmNlIENTUyBGb250IExvYWRpbmcgTDMgYmVjb21lcyBtb3JlXG4gICB3aWRlbHkgYXZhaWxhYmxlLlxuKi9cbi8qID09PT09PT09PT0gIENPTE9SUyAgPT09PT09PT09PSAqL1xuLyoqXG4qXG4qIE1hdGVyaWFsIGRlc2lnbiBjb2xvciBwYWxldHRlcy5cbiogQHNlZSBodHRwOi8vd3d3Lmdvb2dsZS5jb20vZGVzaWduL3NwZWMvc3R5bGUvY29sb3IuaHRtbFxuKlxuKiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgUGFsZXR0ZXMgID09PT09PT09PT0gKi9cbi8qIGNvbG9ycy5zY3NzICovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyogPT09PT09PT09PSAgSU1BR0VTICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb2xvciAmIFRoZW1lcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVHlwb2dyYXBoeSAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29tcG9uZW50cyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3RhbmRhcmQgQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSWNvbiBUb2dnbGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSYWRpbyBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBSaXBwbGUgZWZmZWN0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMYXlvdXQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbnRlbnQgVGFicyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2hlY2tib3hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3dpdGNoZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNwaW5uZXIgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRleHQgZmllbGRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDYXJkICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTbGlkZXJzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gUHJvZ3Jlc3MgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGlzdCA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJdGVtID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIERyb3Bkb3duIG1lbnUgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVG9vbHRpcHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEZvb3RlciAgPT09PT09PT09PSAqL1xuLyogVEVYVEZJRUxEICovXG4vKiBTV0lUQ0ggKi9cbi8qIFNQSU5ORVIgKi9cbi8qIFJBRElPICovXG4vKiBNRU5VICovXG4vKiBMSVNUICovXG4vKiBMQVlPVVQgKi9cbi8qIElDT04gVE9HR0xFICovXG4vKiBGT09URVIgKi9cbi8qbWVnYS1mb290ZXIqL1xuLyptaW5pLWZvb3RlciovXG4vKiBDSEVDS0JPWCAqL1xuLyogQ0FSRCAqL1xuLyogQ2FyZCBkaW1lbnNpb25zICovXG4vKiBDb3ZlciBpbWFnZSAqL1xuLyogQlVUVE9OICovXG4vKipcbiAqXG4gKiBEaW1lbnNpb25zXG4gKlxuICovXG4vKiBBTklNQVRJT04gKi9cbi8qIFBST0dSRVNTICovXG4vKiBCQURHRSAqL1xuLyogU0hBRE9XUyAqL1xuLyogR1JJRCAqL1xuLyogREFUQSBUQUJMRSAqL1xuLyogRElBTE9HICovXG4vKiBTTkFDS0JBUiAqL1xuLyogVE9PTFRJUCAqL1xuLyogQ0hJUCAqL1xuLm1kbC10b29sdGlwIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDk3LDk3LDk3LCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiByZ2IoMjU1LDI1NSwyNTUpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIG1heC13aWR0aDogMTcwcHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAtNTAwcHg7XG4gIGxlZnQ6IC01MDBweDtcbiAgcGFkZGluZzogOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLm1kbC10b29sdGlwLmlzLWFjdGl2ZSB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSkgZm9yd2FyZHM7IH1cblxuLm1kbC10b29sdGlwLS1sYXJnZSB7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDE2cHg7IH1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTkpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9IH1cblxuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSogICAgJENPTlRFTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBTVFlMRSBHVUlERSBWQVJJQUJMRVMtLS0tLS0tLS0tLS0tLS0tLS1EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC0tLS0tVHlwb2dyYXBoeVxuICogLS0tLS1Db2xvcnNcbiAqIC0tLS0tVGV4dGZpZWxkXG4gKiAtLS0tLVN3aXRjaFxuICogLS0tLS1TcGlubmVyXG4gKiAtLS0tLVJhZGlvXG4gKiAtLS0tLU1lbnVcbiAqIC0tLS0tTGlzdFxuICogLS0tLS1MYXlvdXRcbiAqIC0tLS0tSWNvbiB0b2dnbGVzXG4gKiAtLS0tLUZvb3RlclxuICogLS0tLS1Db2x1bW5cbiAqIC0tLS0tQ2hlY2tib3hcbiAqIC0tLS0tQ2FyZFxuICogLS0tLS1CdXR0b25cbiAqIC0tLS0tQW5pbWF0aW9uXG4gKiAtLS0tLVByb2dyZXNzXG4gKiAtLS0tLUJhZGdlXG4gKiAtLS0tLVNoYWRvd3NcbiAqIC0tLS0tR3JpZFxuICogLS0tLS1EYXRhIHRhYmxlXG4gKiAtLS0tLURpYWxvZ1xuICogLS0tLS1TbmFja2JhclxuICogLS0tLS1Ub29sdGlwXG4gKiAtLS0tLUNoaXBcbiAqXG4gKiBFdmVuIHRob3VnaCBhbGwgdmFyaWFibGVzIGhhdmUgdGhlIGAhZGVmYXVsdGAgZGlyZWN0aXZlLCBtb3N0IG9mIHRoZW1cbiAqIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhcyB0aGV5IGFyZSBkZXBlbmRlbnQgb25lIGFub3RoZXIuIFRoaXMgY2FuIGNhdXNlXG4gKiB2aXN1YWwgZGlzdG9ydGlvbnMgKGxpa2UgYWxpZ25tZW50IGlzc3VlcykgdGhhdCBhcmUgaGFyZCB0byB0cmFjayBkb3duXG4gKiBhbmQgZml4LlxuICovXG4vKiA9PT09PT09PT09ICBUWVBPR1JBUEhZICA9PT09PT09PT09ICovXG4vKiBXZSdyZSBzcGxpdHRpbmcgZm9udHMgaW50byBcInByZWZlcnJlZFwiIGFuZCBcInBlcmZvcm1hbmNlXCIgaW4gb3JkZXIgdG8gb3B0aW1pemVcbiAgIHBhZ2UgbG9hZGluZy4gRm9yIGltcG9ydGFudCB0ZXh0LCBzdWNoIGFzIHRoZSBib2R5LCB3ZSB3YW50IGl0IHRvIGxvYWRcbiAgIGltbWVkaWF0ZWx5IGFuZCBub3Qgd2FpdCBmb3IgdGhlIHdlYiBmb250IGxvYWQsIHdoZXJlYXMgZm9yIG90aGVyIHNlY3Rpb25zLFxuICAgc3VjaCBhcyBoZWFkZXJzIGFuZCB0aXRsZXMsIHdlJ3JlIE9LIHdpdGggdGhpbmdzIHRha2luZyBhIGJpdCBsb25nZXIgdG8gbG9hZC5cbiAgIFdlIGRvIGhhdmUgc29tZSBvcHRpb25hbCBjbGFzc2VzIGFuZCBwYXJhbWV0ZXJzIGluIHRoZSBtaXhpbnMsIGluIGNhc2UgeW91XG4gICBkZWZpbml0ZWx5IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSdyZSB1c2luZyB0aGUgcHJlZmVycmVkIGZvbnQgYW5kIGRvbid0IG1pbmRcbiAgIHRoZSBwZXJmb3JtYW5jZSBoaXQuXG4gICBXZSBzaG91bGQgYmUgYWJsZSB0byBpbXByb3ZlIG9uIHRoaXMgb25jZSBDU1MgRm9udCBMb2FkaW5nIEwzIGJlY29tZXMgbW9yZVxuICAgd2lkZWx5IGF2YWlsYWJsZS5cbiovXG4vKiA9PT09PT09PT09ICBDT0xPUlMgID09PT09PT09PT0gKi9cbi8qKlxuKlxuKiBNYXRlcmlhbCBkZXNpZ24gY29sb3IgcGFsZXR0ZXMuXG4qIEBzZWUgaHR0cDovL3d3dy5nb29nbGUuY29tL2Rlc2lnbi9zcGVjL3N0eWxlL2NvbG9yLmh0bWxcbipcbioqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIENvbG9yIFBhbGV0dGVzICA9PT09PT09PT09ICovXG4vKiBjb2xvcnMuc2NzcyAqL1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qID09PT09PT09PT0gIElNQUdFUyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29sb3IgJiBUaGVtZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFR5cG9ncmFwaHkgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbXBvbmVudHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN0YW5kYXJkIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEljb24gVG9nZ2xlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmFkaW8gQnV0dG9ucyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgUmlwcGxlIGVmZmVjdCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgTGF5b3V0ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb250ZW50IFRhYnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENoZWNrYm94ZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFN3aXRjaGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTcGlubmVyICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUZXh0IGZpZWxkcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ2FyZCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU2xpZGVycyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09IFByb2dyZXNzID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExpc3QgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgSXRlbSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBEcm9wZG93biBtZW51ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFRvb2x0aXBzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBGb290ZXIgID09PT09PT09PT0gKi9cbi8qIFRFWFRGSUVMRCAqL1xuLyogU1dJVENIICovXG4vKiBTUElOTkVSICovXG4vKiBSQURJTyAqL1xuLyogTUVOVSAqL1xuLyogTElTVCAqL1xuLyogTEFZT1VUICovXG4vKiBJQ09OIFRPR0dMRSAqL1xuLyogRk9PVEVSICovXG4vKm1lZ2EtZm9vdGVyKi9cbi8qbWluaS1mb290ZXIqL1xuLyogQ0hFQ0tCT1ggKi9cbi8qIENBUkQgKi9cbi8qIENhcmQgZGltZW5zaW9ucyAqL1xuLyogQ292ZXIgaW1hZ2UgKi9cbi8qIEJVVFRPTiAqL1xuLyoqXG4gKlxuICogRGltZW5zaW9uc1xuICpcbiAqL1xuLyogQU5JTUFUSU9OICovXG4vKiBQUk9HUkVTUyAqL1xuLyogQkFER0UgKi9cbi8qIFNIQURPV1MgKi9cbi8qIEdSSUQgKi9cbi8qIERBVEEgVEFCTEUgKi9cbi8qIERJQUxPRyAqL1xuLyogU05BQ0tCQVIgKi9cbi8qIFRPT0xUSVAgKi9cbi8qIENISVAgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiBUeXBvZ3JhcGh5ICovXG4vKiBTaGFkb3dzICovXG4vKiBBbmltYXRpb25zICovXG4vKiBEaWFsb2cgKi9cbi5tZGwtc2hhZG93LS0yZHAge1xuICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMiksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7IH1cblxuLm1kbC1zaGFkb3ctLTNkcCB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTsgfVxuXG4ubWRsLXNoYWRvdy0tNGRwIHtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tNmRwIHtcbiAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cblxuLm1kbC1zaGFkb3ctLThkcCB7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuXG4ubWRsLXNoYWRvdy0tMTZkcCB7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAyNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDhweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5tZGwtc2hhZG93LS0yNGRwIHtcbiAgYm94LXNoYWRvdzogMCA5cHggNDZweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKlxuKiBOT1RFOiBTb21lIHJ1bGVzIGhlcmUgYXJlIGFwcGxpZWQgdXNpbmcgZHVwbGljYXRlIHNlbGVjdG9ycy5cbiogVGhpcyBpcyBvbiBwdXJwb3NlIHRvIGluY3JlYXNlIHRoZWlyIHNwZWNpZmljaXR5IHdoZW4gYXBwbGllZC5cbiogRm9yIGV4YW1wbGU6IGAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZWBcbiovXG4vKipcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qICAgICRDT05URU5UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogU1RZTEUgR1VJREUgVkFSSUFCTEVTLS0tLS0tLS0tLS0tLS0tLS0tRGVjbGFyYXRpb25zIG9mIFNhc3MgdmFyaWFibGVzXG4gKiAtLS0tLVR5cG9ncmFwaHlcbiAqIC0tLS0tQ29sb3JzXG4gKiAtLS0tLVRleHRmaWVsZFxuICogLS0tLS1Td2l0Y2hcbiAqIC0tLS0tU3Bpbm5lclxuICogLS0tLS1SYWRpb1xuICogLS0tLS1NZW51XG4gKiAtLS0tLUxpc3RcbiAqIC0tLS0tTGF5b3V0XG4gKiAtLS0tLUljb24gdG9nZ2xlc1xuICogLS0tLS1Gb290ZXJcbiAqIC0tLS0tQ29sdW1uXG4gKiAtLS0tLUNoZWNrYm94XG4gKiAtLS0tLUNhcmRcbiAqIC0tLS0tQnV0dG9uXG4gKiAtLS0tLUFuaW1hdGlvblxuICogLS0tLS1Qcm9ncmVzc1xuICogLS0tLS1CYWRnZVxuICogLS0tLS1TaGFkb3dzXG4gKiAtLS0tLUdyaWRcbiAqIC0tLS0tRGF0YSB0YWJsZVxuICogLS0tLS1EaWFsb2dcbiAqIC0tLS0tU25hY2tiYXJcbiAqIC0tLS0tVG9vbHRpcFxuICogLS0tLS1DaGlwXG4gKlxuICogRXZlbiB0aG91Z2ggYWxsIHZhcmlhYmxlcyBoYXZlIHRoZSBgIWRlZmF1bHRgIGRpcmVjdGl2ZSwgbW9zdCBvZiB0aGVtXG4gKiBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXMgdGhleSBhcmUgZGVwZW5kZW50IG9uZSBhbm90aGVyLiBUaGlzIGNhbiBjYXVzZVxuICogdmlzdWFsIGRpc3RvcnRpb25zIChsaWtlIGFsaWdubWVudCBpc3N1ZXMpIHRoYXQgYXJlIGhhcmQgdG8gdHJhY2sgZG93blxuICogYW5kIGZpeC5cbiAqL1xuLyogPT09PT09PT09PSAgVFlQT0dSQVBIWSAgPT09PT09PT09PSAqL1xuLyogV2UncmUgc3BsaXR0aW5nIGZvbnRzIGludG8gXCJwcmVmZXJyZWRcIiBhbmQgXCJwZXJmb3JtYW5jZVwiIGluIG9yZGVyIHRvIG9wdGltaXplXG4gICBwYWdlIGxvYWRpbmcuIEZvciBpbXBvcnRhbnQgdGV4dCwgc3VjaCBhcyB0aGUgYm9keSwgd2Ugd2FudCBpdCB0byBsb2FkXG4gICBpbW1lZGlhdGVseSBhbmQgbm90IHdhaXQgZm9yIHRoZSB3ZWIgZm9udCBsb2FkLCB3aGVyZWFzIGZvciBvdGhlciBzZWN0aW9ucyxcbiAgIHN1Y2ggYXMgaGVhZGVycyBhbmQgdGl0bGVzLCB3ZSdyZSBPSyB3aXRoIHRoaW5ncyB0YWtpbmcgYSBiaXQgbG9uZ2VyIHRvIGxvYWQuXG4gICBXZSBkbyBoYXZlIHNvbWUgb3B0aW9uYWwgY2xhc3NlcyBhbmQgcGFyYW1ldGVycyBpbiB0aGUgbWl4aW5zLCBpbiBjYXNlIHlvdVxuICAgZGVmaW5pdGVseSB3YW50IHRvIG1ha2Ugc3VyZSB5b3UncmUgdXNpbmcgdGhlIHByZWZlcnJlZCBmb250IGFuZCBkb24ndCBtaW5kXG4gICB0aGUgcGVyZm9ybWFuY2UgaGl0LlxuICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gaW1wcm92ZSBvbiB0aGlzIG9uY2UgQ1NTIEZvbnQgTG9hZGluZyBMMyBiZWNvbWVzIG1vcmVcbiAgIHdpZGVseSBhdmFpbGFibGUuXG4qL1xuLyogPT09PT09PT09PSAgQ09MT1JTICA9PT09PT09PT09ICovXG4vKipcbipcbiogTWF0ZXJpYWwgZGVzaWduIGNvbG9yIHBhbGV0dGVzLlxuKiBAc2VlIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9kZXNpZ24vc3BlYy9zdHlsZS9jb2xvci5odG1sXG4qXG4qKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBDb2xvciBQYWxldHRlcyAgPT09PT09PT09PSAqL1xuLyogY29sb3JzLnNjc3MgKi9cbi8qKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiA9PT09PT09PT09ICBJTUFHRVMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENvbG9yICYgVGhlbWVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUeXBvZ3JhcGh5ICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDb21wb25lbnRzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTdGFuZGFyZCBCdXR0b25zICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBJY29uIFRvZ2dsZXMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJhZGlvIEJ1dHRvbnMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFJpcHBsZSBlZmZlY3QgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIExheW91dCAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgQ29udGVudCBUYWJzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBDaGVja2JveGVzICA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBTd2l0Y2hlcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgU3Bpbm5lciAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgVGV4dCBmaWVsZHMgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIENhcmQgID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIFNsaWRlcnMgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSBQcm9ncmVzcyA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBMaXN0ID09PT09PT09PT0gKi9cbi8qID09PT09PT09PT0gIEl0ZW0gPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRHJvcGRvd24gbWVudSA9PT09PT09PT09ICovXG4vKiA9PT09PT09PT09ICBUb29sdGlwcyAgPT09PT09PT09PSAqL1xuLyogPT09PT09PT09PSAgRm9vdGVyICA9PT09PT09PT09ICovXG4vKiBURVhURklFTEQgKi9cbi8qIFNXSVRDSCAqL1xuLyogU1BJTk5FUiAqL1xuLyogUkFESU8gKi9cbi8qIE1FTlUgKi9cbi8qIExJU1QgKi9cbi8qIExBWU9VVCAqL1xuLyogSUNPTiBUT0dHTEUgKi9cbi8qIEZPT1RFUiAqL1xuLyptZWdhLWZvb3RlciovXG4vKm1pbmktZm9vdGVyKi9cbi8qIENIRUNLQk9YICovXG4vKiBDQVJEICovXG4vKiBDYXJkIGRpbWVuc2lvbnMgKi9cbi8qIENvdmVyIGltYWdlICovXG4vKiBCVVRUT04gKi9cbi8qKlxuICpcbiAqIERpbWVuc2lvbnNcbiAqXG4gKi9cbi8qIEFOSU1BVElPTiAqL1xuLyogUFJPR1JFU1MgKi9cbi8qIEJBREdFICovXG4vKiBTSEFET1dTICovXG4vKiBHUklEICovXG4vKiBEQVRBIFRBQkxFICovXG4vKiBESUFMT0cgKi9cbi8qIFNOQUNLQkFSICovXG4vKiBUT09MVElQICovXG4vKiBDSElQICovXG4ubWRsLWdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBtYXJnaW46IDAgYXV0byAwIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4ubWRsLWNlbGwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5tZGwtY2VsbC0tdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4ubWRsLWNlbGwtLW1pZGRsZSB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjsgfVxuXG4ubWRsLWNlbGwtLWJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5tZGwtY2VsbC0tc3RyZXRjaCB7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7IH1cblxuLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMiB7XG4gIG9yZGVyOiAyOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMyB7XG4gIG9yZGVyOiAzOyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNSB7XG4gIG9yZGVyOiA1OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNiB7XG4gIG9yZGVyOiA2OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItNyB7XG4gIG9yZGVyOiA3OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItOCB7XG4gIG9yZGVyOiA4OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItOSB7XG4gIG9yZGVyOiA5OyB9XG5cbi5tZGwtY2VsbC0tb3JkZXItMTAge1xuICBvcmRlcjogMTA7IH1cblxuLm1kbC1jZWxsLS1vcmRlci0xMSB7XG4gIG9yZGVyOiAxMTsgfVxuXG4ubWRsLWNlbGwtLW9yZGVyLTEyIHtcbiAgb3JkZXI6IDEyOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWRsLWdyaWQge1xuICAgIHBhZGRpbmc6IDhweDsgfVxuICAubWRsLWNlbGwge1xuICAgIG1hcmdpbjogOHB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLWhpZGUtcGhvbmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEtcGhvbmUubWRsLWNlbGwtLW9yZGVyLTEtcGhvbmUge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMi1waG9uZS5tZGwtY2VsbC0tb3JkZXItMi1waG9uZSB7XG4gICAgb3JkZXI6IDI7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0zLXBob25lLm1kbC1jZWxsLS1vcmRlci0zLXBob25lIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTQtcGhvbmUubWRsLWNlbGwtLW9yZGVyLTQtcGhvbmUge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItNS1waG9uZS5tZGwtY2VsbC0tb3JkZXItNS1waG9uZSB7XG4gICAgb3JkZXI6IDU7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci02LXBob25lLm1kbC1jZWxsLS1vcmRlci02LXBob25lIHtcbiAgICBvcmRlcjogNjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTctcGhvbmUubWRsLWNlbGwtLW9yZGVyLTctcGhvbmUge1xuICAgIG9yZGVyOiA3OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItOC1waG9uZS5tZGwtY2VsbC0tb3JkZXItOC1waG9uZSB7XG4gICAgb3JkZXI6IDg7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci05LXBob25lLm1kbC1jZWxsLS1vcmRlci05LXBob25lIHtcbiAgICBvcmRlcjogOTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEwLXBob25lLm1kbC1jZWxsLS1vcmRlci0xMC1waG9uZSB7XG4gICAgb3JkZXI6IDEwOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMTEtcGhvbmUubWRsLWNlbGwtLW9yZGVyLTExLXBob25lIHtcbiAgICBvcmRlcjogMTE7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xMi1waG9uZS5tZGwtY2VsbC0tb3JkZXItMTItcGhvbmUge1xuICAgIG9yZGVyOiAxMjsgfVxuICAubWRsLWNlbGwtLTEtY29sLFxuICAubWRsLWNlbGwtLTEtY29sLXBob25lLm1kbC1jZWxsLS0xLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1jb2wtcGhvbmUubWRsLWNlbGwtLTEtY29sLXBob25lIHtcbiAgICAgIHdpZHRoOiAyNSU7IH1cbiAgLm1kbC1jZWxsLS0yLWNvbCxcbiAgLm1kbC1jZWxsLS0yLWNvbC1waG9uZS5tZGwtY2VsbC0tMi1jb2wtcGhvbmUge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0yLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTItY29sLXBob25lLm1kbC1jZWxsLS0yLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tMy1jb2wsXG4gIC5tZGwtY2VsbC0tMy1jb2wtcGhvbmUubWRsLWNlbGwtLTMtY29sLXBob25lIHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLWNvbC1waG9uZS5tZGwtY2VsbC0tMy1jb2wtcGhvbmUge1xuICAgICAgd2lkdGg6IDc1JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLXBob25lLm1kbC1jZWxsLS00LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS00LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTQtY29sLXBob25lLm1kbC1jZWxsLS00LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTUtY29sLFxuICAubWRsLWNlbGwtLTUtY29sLXBob25lLm1kbC1jZWxsLS01LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLXBob25lLm1kbC1jZWxsLS01LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTYtY29sLFxuICAubWRsLWNlbGwtLTYtY29sLXBob25lLm1kbC1jZWxsLS02LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS02LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTYtY29sLXBob25lLm1kbC1jZWxsLS02LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTctY29sLFxuICAubWRsLWNlbGwtLTctY29sLXBob25lLm1kbC1jZWxsLS03LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS03LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTctY29sLXBob25lLm1kbC1jZWxsLS03LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTgtY29sLFxuICAubWRsLWNlbGwtLTgtY29sLXBob25lLm1kbC1jZWxsLS04LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS04LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTgtY29sLXBob25lLm1kbC1jZWxsLS04LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTktY29sLFxuICAubWRsLWNlbGwtLTktY29sLXBob25lLm1kbC1jZWxsLS05LWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS05LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTktY29sLXBob25lLm1kbC1jZWxsLS05LWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEwLWNvbCxcbiAgLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUubWRsLWNlbGwtLTEwLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtcGhvbmUubWRsLWNlbGwtLTEwLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTExLWNvbCxcbiAgLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUubWRsLWNlbGwtLTExLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMS1jb2wtcGhvbmUubWRsLWNlbGwtLTExLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUubWRsLWNlbGwtLTEyLWNvbC1waG9uZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMi1jb2wtcGhvbmUubWRsLWNlbGwtLTEyLWNvbC1waG9uZSB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0xLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMjUlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMS1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWRsLWNlbGwtLTItb2Zmc2V0LFxuICAubWRsLWNlbGwtLTItb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0yLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMi1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LXBob25lLm1kbC1jZWxsLS0zLW9mZnNldC1waG9uZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNzUlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMy1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0zLW9mZnNldC1waG9uZS5tZGwtY2VsbC0tMy1vZmZzZXQtcGhvbmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4OyB9XG4gIC5tZGwtY2VsbCB7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwge1xuICAgICAgd2lkdGg6IDUwJTsgfVxuICAubWRsLWNlbGwtLWhpZGUtdGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMS10YWJsZXQge1xuICAgIG9yZGVyOiAxOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMi10YWJsZXQubWRsLWNlbGwtLW9yZGVyLTItdGFibGV0IHtcbiAgICBvcmRlcjogMjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTMtdGFibGV0Lm1kbC1jZWxsLS1vcmRlci0zLXRhYmxldCB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci00LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNC10YWJsZXQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItNS10YWJsZXQubWRsLWNlbGwtLW9yZGVyLTUtdGFibGV0IHtcbiAgICBvcmRlcjogNTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTYtdGFibGV0Lm1kbC1jZWxsLS1vcmRlci02LXRhYmxldCB7XG4gICAgb3JkZXI6IDY7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci03LXRhYmxldC5tZGwtY2VsbC0tb3JkZXItNy10YWJsZXQge1xuICAgIG9yZGVyOiA3OyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItOC10YWJsZXQubWRsLWNlbGwtLW9yZGVyLTgtdGFibGV0IHtcbiAgICBvcmRlcjogODsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTktdGFibGV0Lm1kbC1jZWxsLS1vcmRlci05LXRhYmxldCB7XG4gICAgb3JkZXI6IDk7IH1cbiAgLm1kbC1jZWxsLS1vcmRlci0xMC10YWJsZXQubWRsLWNlbGwtLW9yZGVyLTEwLXRhYmxldCB7XG4gICAgb3JkZXI6IDEwOyB9XG4gIC5tZGwtY2VsbC0tb3JkZXItMTEtdGFibGV0Lm1kbC1jZWxsLS1vcmRlci0xMS10YWJsZXQge1xuICAgIG9yZGVyOiAxMTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEyLXRhYmxldC5tZGwtY2VsbC0tb3JkZXItMTItdGFibGV0IHtcbiAgICBvcmRlcjogMTI7IH1cbiAgLm1kbC1jZWxsLS0xLWNvbCxcbiAgLm1kbC1jZWxsLS0xLWNvbC10YWJsZXQubWRsLWNlbGwtLTEtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTIuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLWNvbC10YWJsZXQubWRsLWNlbGwtLTEtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTIuNSU7IH1cbiAgLm1kbC1jZWxsLS0yLWNvbCxcbiAgLm1kbC1jZWxsLS0yLWNvbC10YWJsZXQubWRsLWNlbGwtLTItY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1jb2wtdGFibGV0Lm1kbC1jZWxsLS0yLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLXRhYmxldC5tZGwtY2VsbC0tMy1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygzNy41JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0zLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTMtY29sLXRhYmxldC5tZGwtY2VsbC0tMy1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAzNy41JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLXRhYmxldC5tZGwtY2VsbC0tNC1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS00LWNvbC10YWJsZXQubWRsLWNlbGwtLTQtY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNS1jb2wsXG4gIC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0Lm1kbC1jZWxsLS01LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDYyLjUlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1jb2wtdGFibGV0Lm1kbC1jZWxsLS01LWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDYyLjUlOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0Lm1kbC1jZWxsLS02LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDc1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS02LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTYtY29sLXRhYmxldC5tZGwtY2VsbC0tNi1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS03LWNvbCxcbiAgLm1kbC1jZWxsLS03LWNvbC10YWJsZXQubWRsLWNlbGwtLTctY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoODcuNSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC10YWJsZXQubWRsLWNlbGwtLTctY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogODcuNSU7IH1cbiAgLm1kbC1jZWxsLS04LWNvbCxcbiAgLm1kbC1jZWxsLS04LWNvbC10YWJsZXQubWRsLWNlbGwtLTgtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS04LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTgtY29sLXRhYmxldC5tZGwtY2VsbC0tOC1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tOS1jb2wsXG4gIC5tZGwtY2VsbC0tOS1jb2wtdGFibGV0Lm1kbC1jZWxsLS05LWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC10YWJsZXQubWRsLWNlbGwtLTktY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEwLWNvbCxcbiAgLm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMC1jb2wtdGFibGV0IHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEwLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTEwLWNvbC10YWJsZXQubWRsLWNlbGwtLTEwLWNvbC10YWJsZXQge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLm1kbC1jZWxsLS0xMS1jb2wsXG4gIC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldC5tZGwtY2VsbC0tMTEtY29sLXRhYmxldCB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0Lm1kbC1jZWxsLS0xMS1jb2wtdGFibGV0IHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMTItY29sLFxuICAubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQubWRsLWNlbGwtLTEyLWNvbC10YWJsZXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLXRhYmxldC5tZGwtY2VsbC0tMTItY29sLXRhYmxldCB7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTEtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tMS1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxMi41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0xLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEyLjUlOyB9XG4gIC5tZGwtY2VsbC0tMi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tMi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0yLW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTItb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0yLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tMy1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygzNy41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS0zLW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDM3LjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS00LW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS00LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAubWRsLWNlbGwtLTUtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTUtb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tNS1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Mi41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTUtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNS1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS01LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDYyLjUlOyB9XG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS02LW9mZnNldC10YWJsZXQge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDc1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS02LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWRsLWNlbGwtLTctb2Zmc2V0LFxuICAubWRsLWNlbGwtLTctb2Zmc2V0LXRhYmxldC5tZGwtY2VsbC0tNy1vZmZzZXQtdGFibGV0IHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg4Ny41JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1vZmZzZXQtdGFibGV0Lm1kbC1jZWxsLS03LW9mZnNldC10YWJsZXQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDg3LjUlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5tZGwtZ3JpZCB7XG4gICAgcGFkZGluZzogOHB4OyB9XG4gIC5tZGwtY2VsbCB7XG4gICAgbWFyZ2luOiA4cHg7XG4gICAgd2lkdGg6IGNhbGMoMzMuMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS1oaWRlLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItMS1kZXNrdG9wIHtcbiAgICBvcmRlcjogMTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTItZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItMi1kZXNrdG9wIHtcbiAgICBvcmRlcjogMjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTMtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItMy1kZXNrdG9wIHtcbiAgICBvcmRlcjogMzsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTQtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNC1kZXNrdG9wIHtcbiAgICBvcmRlcjogNDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTUtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNS1kZXNrdG9wIHtcbiAgICBvcmRlcjogNTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTYtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNi1kZXNrdG9wIHtcbiAgICBvcmRlcjogNjsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTctZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItNy1kZXNrdG9wIHtcbiAgICBvcmRlcjogNzsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTgtZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItOC1kZXNrdG9wIHtcbiAgICBvcmRlcjogODsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTktZGVza3RvcC5tZGwtY2VsbC0tb3JkZXItOS1kZXNrdG9wIHtcbiAgICBvcmRlcjogOTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEwLWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTEwLWRlc2t0b3Age1xuICAgIG9yZGVyOiAxMDsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTExLWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTExLWRlc2t0b3Age1xuICAgIG9yZGVyOiAxMTsgfVxuICAubWRsLWNlbGwtLW9yZGVyLTEyLWRlc2t0b3AubWRsLWNlbGwtLW9yZGVyLTEyLWRlc2t0b3Age1xuICAgIG9yZGVyOiAxMjsgfVxuICAubWRsLWNlbGwtLTEtY29sLFxuICAubWRsLWNlbGwtLTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDguMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMi1jb2wsXG4gIC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoMTYuNjY2NjY2NjY2NyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0yLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTMtY29sLFxuICAubWRsLWNlbGwtLTMtY29sLWRlc2t0b3AubWRsLWNlbGwtLTMtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDI1JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0zLWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTMtY29sLWRlc2t0b3AubWRsLWNlbGwtLTMtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDI1JTsgfVxuICAubWRsLWNlbGwtLTQtY29sLFxuICAubWRsLWNlbGwtLTQtY29sLWRlc2t0b3AubWRsLWNlbGwtLTQtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDMzLjMzMzMzMzMzMzMlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTQtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS01LWNvbCxcbiAgLm1kbC1jZWxsLS01LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS01LWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg0MS42NjY2NjY2NjY3JSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LWNvbCwgLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtY29sLWRlc2t0b3AubWRsLWNlbGwtLTUtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDQxLjY2NjY2NjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1jb2wsXG4gIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTYtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNi1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gIC5tZGwtY2VsbC0tNy1jb2wsXG4gIC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcC5tZGwtY2VsbC0tNy1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoNTguMzMzMzMzMzMzMyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNy1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS03LWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTgtY29sLFxuICAubWRsLWNlbGwtLTgtY29sLWRlc2t0b3AubWRsLWNlbGwtLTgtY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDY2LjY2NjY2NjY2NjclIC0gMTZweCk7IH1cbiAgICAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tOC1jb2wtZGVza3RvcCB7XG4gICAgICB3aWR0aDogNjYuNjY2NjY2NjY2NyU7IH1cbiAgLm1kbC1jZWxsLS05LWNvbCxcbiAgLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg3NSUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tOS1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wLm1kbC1jZWxsLS05LWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA3NSU7IH1cbiAgLm1kbC1jZWxsLS0xMC1jb2wsXG4gIC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3AubWRsLWNlbGwtLTEwLWNvbC1kZXNrdG9wIHtcbiAgICB3aWR0aDogY2FsYyg4My4zMzMzMzMzMzMzJSAtIDE2cHgpOyB9XG4gICAgLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS0xMC1jb2wsIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0xMC1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTAtY29sLWRlc2t0b3Age1xuICAgICAgd2lkdGg6IDgzLjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tMTEtY29sLFxuICAubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wLm1kbC1jZWxsLS0xMS1jb2wtZGVza3RvcCB7XG4gICAgd2lkdGg6IGNhbGMoOTEuNjY2NjY2NjY2NyUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtY29sLWRlc2t0b3AubWRsLWNlbGwtLTExLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTEyLWNvbCxcbiAgLm1kbC1jZWxsLS0xMi1jb2wtZGVza3RvcC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3Age1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxNnB4KTsgfVxuICAgIC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTItY29sLCAubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTItY29sLWRlc2t0b3AubWRsLWNlbGwtLTEyLWNvbC1kZXNrdG9wIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5tZGwtY2VsbC0tMS1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoOC4zMzMzMzMzMzMzJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMS1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTItb2Zmc2V0LFxuICAubWRsLWNlbGwtLTItb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTItb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDE2LjY2NjY2NjY2NjclICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS0yLW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS0yLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTsgfVxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LFxuICAubWRsLWNlbGwtLTMtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTMtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI1JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTMtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMy1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMy1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNC1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoMzMuMzMzMzMzMzMzMyUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS00LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTQtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTQtb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlOyB9XG4gIC5tZGwtY2VsbC0tNS1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNS1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNDEuNjY2NjY2NjY2NyUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS01LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTUtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTUtb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY2NjY2NjclOyB9XG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQsXG4gIC5tZGwtY2VsbC0tNi1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNi1vZmZzZXQtZGVza3RvcCB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tNi1vZmZzZXQsIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+XG4gICAgLm1kbC1jZWxsLS02LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS02LW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLm1kbC1jZWxsLS03LW9mZnNldCxcbiAgLm1kbC1jZWxsLS03LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS03LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg1OC4zMzMzMzMzMzMzJSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTctb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tNy1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tNy1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMzMzMzMyU7IH1cbiAgLm1kbC1jZWxsLS04LW9mZnNldCxcbiAgLm1kbC1jZWxsLS04LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS04LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg2Ni42NjY2NjY2NjY3JSArIDhweCk7IH1cbiAgICAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPiAubWRsLWNlbGwtLTgtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tOC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tOC1vZmZzZXQtZGVza3RvcCB7XG4gICAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7IH1cbiAgLm1kbC1jZWxsLS05LW9mZnNldCxcbiAgLm1kbC1jZWxsLS05LW9mZnNldC1kZXNrdG9wLm1kbC1jZWxsLS05LW9mZnNldC1kZXNrdG9wIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyg3NSUgKyA4cHgpOyB9XG4gICAgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID4gLm1kbC1jZWxsLS05LW9mZnNldCwgLm1kbC1ncmlkLm1kbC1ncmlkLS1uby1zcGFjaW5nID5cbiAgICAubWRsLWNlbGwtLTktb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTktb2Zmc2V0LWRlc2t0b3Age1xuICAgICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAubWRsLWNlbGwtLTEwLW9mZnNldCxcbiAgLm1kbC1jZWxsLS0xMC1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMTAtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDgzLjMzMzMzMzMzMzMlICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTAtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTAtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTEwLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMzMzMzMzJTsgfVxuICAubWRsLWNlbGwtLTExLW9mZnNldCxcbiAgLm1kbC1jZWxsLS0xMS1vZmZzZXQtZGVza3RvcC5tZGwtY2VsbC0tMTEtb2Zmc2V0LWRlc2t0b3Age1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDkxLjY2NjY2NjY2NjclICsgOHB4KTsgfVxuICAgIC5tZGwtZ3JpZC5tZGwtZ3JpZC0tbm8tc3BhY2luZyA+IC5tZGwtY2VsbC0tMTEtb2Zmc2V0LCAubWRsLWdyaWQubWRsLWdyaWQtLW5vLXNwYWNpbmcgPlxuICAgIC5tZGwtY2VsbC0tMTEtb2Zmc2V0LWRlc2t0b3AubWRsLWNlbGwtLTExLW9mZnNldC1kZXNrdG9wIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NjY2NjY3JTsgfSB9XG5cbi8qIE1hdGVyaWFsRGVzaWduSWNvbnMuY29tICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTWF0ZXJpYWwgRGVzaWduIEljb25zXCI7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC5lb3Q/dj0yLjEuMTlcIik7XG4gIHNyYzogdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC5lb3Q/I2llZml4JnY9Mi4xLjE5XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9hc3NldHMvZm9udHMvbWF0ZXJpYWxkZXNpZ25pY29ucy13ZWJmb250LndvZmYyP3Y9Mi4xLjE5XCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9hc3NldHMvZm9udHMvbWF0ZXJpYWxkZXNpZ25pY29ucy13ZWJmb250LndvZmY/dj0yLjEuMTlcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vYXNzZXRzL2ZvbnRzL21hdGVyaWFsZGVzaWduaWNvbnMtd2ViZm9udC50dGY/dj0yLjEuMTlcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2Fzc2V0cy9mb250cy9tYXRlcmlhbGRlc2lnbmljb25zLXdlYmZvbnQuc3ZnP3Y9Mi4xLjE5I21hdGVyaWFsZGVzaWduaWNvbnNyZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi5tZGk6YmVmb3JlLFxuLm1kaS1zZXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDI0cHgvMSBcIk1hdGVyaWFsIERlc2lnbiBJY29uc1wiO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLm1kaS1hY2Nlc3MtcG9pbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMDJcIjsgfVxuXG4ubWRpLWFjY2Vzcy1wb2ludC1uZXR3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDAzXCI7IH1cblxuLm1kaS1hY2NvdW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDA0XCI7IH1cblxuLm1kaS1hY2NvdW50LWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDA1XCI7IH1cblxuLm1kaS1hY2NvdW50LWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAwNlwiOyB9XG5cbi5tZGktYWNjb3VudC1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAwN1wiOyB9XG5cbi5tZGktYWNjb3VudC1jYXJkLWRldGFpbHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDJcIjsgfVxuXG4ubWRpLWFjY291bnQtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMDhcIjsgfVxuXG4ubWRpLWFjY291bnQtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDA5XCI7IH1cblxuLm1kaS1hY2NvdW50LWNvbnZlcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMEFcIjsgfVxuXG4ubWRpLWFjY291bnQtZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCQlwiOyB9XG5cbi5tZGktYWNjb3VudC1rZXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMEJcIjsgfVxuXG4ubWRpLWFjY291bnQtbG9jYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMENcIjsgfVxuXG4ubWRpLWFjY291bnQtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMERcIjsgfVxuXG4ubWRpLWFjY291bnQtbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMEVcIjsgfVxuXG4ubWRpLWFjY291bnQtbXVsdGlwbGUtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDNcIjsgfVxuXG4ubWRpLWFjY291bnQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAwRlwiOyB9XG5cbi5tZGktYWNjb3VudC1tdWx0aXBsZS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDEwXCI7IH1cblxuLm1kaS1hY2NvdW50LW11bHRpcGxlLXBsdXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGRlwiOyB9XG5cbi5tZGktYWNjb3VudC1uZXR3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDExXCI7IH1cblxuLm1kaS1hY2NvdW50LW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAxMlwiOyB9XG5cbi5tZGktYWNjb3VudC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDEzXCI7IH1cblxuLm1kaS1hY2NvdW50LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMTRcIjsgfVxuXG4ubWRpLWFjY291bnQtcGx1cy1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODAwXCI7IH1cblxuLm1kaS1hY2NvdW50LXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAxNVwiOyB9XG5cbi5tZGktYWNjb3VudC1zZWFyY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMTZcIjsgfVxuXG4ubWRpLWFjY291bnQtc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MzBcIjsgfVxuXG4ubWRpLWFjY291bnQtc2V0dGluZ3MtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzMVwiOyB9XG5cbi5tZGktYWNjb3VudC1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDE3XCI7IH1cblxuLm1kaS1hY2NvdW50LXN3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAxOVwiOyB9XG5cbi5tZGktYWRqdXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDFBXCI7IH1cblxuLm1kaS1haXItY29uZGl0aW9uZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMUJcIjsgfVxuXG4ubWRpLWFpcmJhbGxvb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMUNcIjsgfVxuXG4ubWRpLWFpcnBsYW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDFEXCI7IH1cblxuLm1kaS1haXJwbGFuZS1sYW5kaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUQ0XCI7IH1cblxuLm1kaS1haXJwbGFuZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMUVcIjsgfVxuXG4ubWRpLWFpcnBsYW5lLXRha2VvZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDVcIjsgfVxuXG4ubWRpLWFpcnBsYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMUZcIjsgfVxuXG4ubWRpLWFsYXJtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDIwXCI7IH1cblxuLm1kaS1hbGFybS1iZWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzhEXCI7IH1cblxuLm1kaS1hbGFybS1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAyMVwiOyB9XG5cbi5tZGktYWxhcm0tbGlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OEVcIjsgfVxuXG4ubWRpLWFsYXJtLW11bHRpcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDIyXCI7IH1cblxuLm1kaS1hbGFybS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMjNcIjsgfVxuXG4ubWRpLWFsYXJtLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMjRcIjsgfVxuXG4ubWRpLWFsYXJtLXNub296ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4RFwiOyB9XG5cbi5tZGktYWxidW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMjVcIjsgfVxuXG4ubWRpLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDI2XCI7IH1cblxuLm1kaS1hbGVydC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMjdcIjsgfVxuXG4ubWRpLWFsZXJ0LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAyOFwiOyB9XG5cbi5tZGktYWxlcnQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDZcIjsgfVxuXG4ubWRpLWFsZXJ0LWRlY2FncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkJDXCI7IH1cblxuLm1kaS1hbGVydC1vY3RhZ29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDI5XCI7IH1cblxuLm1kaS1hbGVydC1vY3RhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2NlwiOyB9XG5cbi5tZGktYWxlcnQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAyQVwiOyB9XG5cbi5tZGktYWxsLWluY2x1c2l2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCRFwiOyB9XG5cbi5tZGktYWxsbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwMVwiOyB9XG5cbi5tZGktYWxwaGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMkJcIjsgfVxuXG4ubWRpLWFscGhhYmV0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAyQ1wiOyB9XG5cbi5tZGktYWx0aW1ldGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUQ3XCI7IH1cblxuLm1kaS1hbWF6b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMkRcIjsgfVxuXG4ubWRpLWFtYXpvbi1jbG91ZGRyaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDJFXCI7IH1cblxuLm1kaS1hbWJ1bGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMkZcIjsgfVxuXG4ubWRpLWFtcGxpZmllcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzMFwiOyB9XG5cbi5tZGktYW5jaG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDMxXCI7IH1cblxuLm1kaS1hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDMyXCI7IH1cblxuLm1kaS1hbmRyb2lkLWRlYnVnLWJyaWRnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzM1wiOyB9XG5cbi5tZGktYW5kcm9pZC1oZWFkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzhGXCI7IH1cblxuLm1kaS1hbmRyb2lkLXN0dWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzNFwiOyB9XG5cbi5tZGktYW5ndWxhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCMVwiOyB9XG5cbi5tZGktYW5ndWxhcmpzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkJFXCI7IH1cblxuLm1kaS1hbmltYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDhcIjsgfVxuXG4ubWRpLWFwcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDM1XCI7IH1cblxuLm1kaS1hcHBsZS1maW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMzZcIjsgfVxuXG4ubWRpLWFwcGxlLWlvczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzN1wiOyB9XG5cbi5tZGktYXBwbGUta2V5Ym9hcmQtY2FwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzMlwiOyB9XG5cbi5tZGktYXBwbGUta2V5Ym9hcmQtY29tbWFuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzM1wiOyB9XG5cbi5tZGktYXBwbGUta2V5Ym9hcmQtY29udHJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzNFwiOyB9XG5cbi5tZGktYXBwbGUta2V5Ym9hcmQtb3B0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjM1XCI7IH1cblxuLm1kaS1hcHBsZS1rZXlib2FyZC1zaGlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzNlwiOyB9XG5cbi5tZGktYXBwbGUtbW9iaWxlbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMzhcIjsgfVxuXG4ubWRpLWFwcGxlLXNhZmFyaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzOVwiOyB9XG5cbi5tZGktYXBwbGljYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTRcIjsgfVxuXG4ubWRpLWFwcHJvdmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzkwXCI7IH1cblxuLm1kaS1hcHBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDNCXCI7IH1cblxuLm1kaS1hcmNoaXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDNDXCI7IH1cblxuLm1kaS1hcnJhbmdlLWJyaW5nLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwM0RcIjsgfVxuXG4ubWRpLWFycmFuZ2UtYnJpbmctdG8tZnJvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwM0VcIjsgfVxuXG4ubWRpLWFycmFuZ2Utc2VuZC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjAzRlwiOyB9XG5cbi5tZGktYXJyYW5nZS1zZW5kLXRvLWJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNDBcIjsgfVxuXG4ubWRpLWFycm93LWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA0MVwiOyB9XG5cbi5tZGktYXJyb3ctYm90dG9tLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNDJcIjsgfVxuXG4ubWRpLWFycm93LWJvdHRvbS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA0M1wiOyB9XG5cbi5tZGktYXJyb3ctY29sbGFwc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTVcIjsgfVxuXG4ubWRpLWFycm93LWNvbGxhcHNlLWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA0NFwiOyB9XG5cbi5tZGktYXJyb3ctY29sbGFwc2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc5MVwiOyB9XG5cbi5tZGktYXJyb3ctY29sbGFwc2UtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc5MlwiOyB9XG5cbi5tZGktYXJyb3ctY29sbGFwc2UtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OTNcIjsgfVxuXG4ubWRpLWFycm93LWNvbGxhcHNlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzk0XCI7IH1cblxuLm1kaS1hcnJvdy1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDQ1XCI7IH1cblxuLm1kaS1hcnJvdy1kb3duLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MkRcIjsgfVxuXG4ubWRpLWFycm93LWRvd24tYm9sZC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MkVcIjsgfVxuXG4ubWRpLWFycm93LWRvd24tYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcyRlwiOyB9XG5cbi5tZGktYXJyb3ctZG93bi1ib2xkLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA0N1wiOyB9XG5cbi5tZGktYXJyb3ctZG93bi1ib2xkLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDQ4XCI7IH1cblxuLm1kaS1hcnJvdy1kb3duLWJvbGQtaGV4YWdvbi1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDQ5XCI7IH1cblxuLm1kaS1hcnJvdy1kb3duLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCRlwiOyB9XG5cbi5tZGktYXJyb3ctZG93bi1kcm9wLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA0QVwiOyB9XG5cbi5tZGktYXJyb3ctZG93bi1kcm9wLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDRCXCI7IH1cblxuLm1kaS1hcnJvdy1kb3duLXRoaWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDQ2XCI7IH1cblxuLm1kaS1hcnJvdy1leHBhbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTZcIjsgfVxuXG4ubWRpLWFycm93LWV4cGFuZC1hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNENcIjsgfVxuXG4ubWRpLWFycm93LWV4cGFuZC1kb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzk1XCI7IH1cblxuLm1kaS1hcnJvdy1leHBhbmQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc5NlwiOyB9XG5cbi5tZGktYXJyb3ctZXhwYW5kLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzk3XCI7IH1cblxuLm1kaS1hcnJvdy1leHBhbmQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OThcIjsgfVxuXG4ubWRpLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNERcIjsgfVxuXG4ubWRpLWFycm93LWxlZnQtYm9sZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczMFwiOyB9XG5cbi5tZGktYXJyb3ctbGVmdC1ib2xkLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczMVwiOyB9XG5cbi5tZGktYXJyb3ctbGVmdC1ib2xkLWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzMyXCI7IH1cblxuLm1kaS1hcnJvdy1sZWZ0LWJvbGQtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDRGXCI7IH1cblxuLm1kaS1hcnJvdy1sZWZ0LWJvbGQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNTBcIjsgfVxuXG4ubWRpLWFycm93LWxlZnQtYm9sZC1oZXhhZ29uLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNTFcIjsgfVxuXG4ubWRpLWFycm93LWxlZnQtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkMwXCI7IH1cblxuLm1kaS1hcnJvdy1sZWZ0LWRyb3AtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDUyXCI7IH1cblxuLm1kaS1hcnJvdy1sZWZ0LWRyb3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNTNcIjsgfVxuXG4ubWRpLWFycm93LWxlZnQtdGhpY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNEVcIjsgfVxuXG4ubWRpLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDU0XCI7IH1cblxuLm1kaS1hcnJvdy1yaWdodC1ib2xkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzMzXCI7IH1cblxuLm1kaS1hcnJvdy1yaWdodC1ib2xkLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczNFwiOyB9XG5cbi5tZGktYXJyb3ctcmlnaHQtYm9sZC1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczNVwiOyB9XG5cbi5tZGktYXJyb3ctcmlnaHQtYm9sZC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNTZcIjsgfVxuXG4ubWRpLWFycm93LXJpZ2h0LWJvbGQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNTdcIjsgfVxuXG4ubWRpLWFycm93LXJpZ2h0LWJvbGQtaGV4YWdvbi1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDU4XCI7IH1cblxuLm1kaS1hcnJvdy1yaWdodC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QzFcIjsgfVxuXG4ubWRpLWFycm93LXJpZ2h0LWRyb3AtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDU5XCI7IH1cblxuLm1kaS1hcnJvdy1yaWdodC1kcm9wLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDVBXCI7IH1cblxuLm1kaS1hcnJvdy1yaWdodC10aGljazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA1NVwiOyB9XG5cbi5tZGktYXJyb3ctdG9wLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNUJcIjsgfVxuXG4ubWRpLWFycm93LXRvcC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA1Q1wiOyB9XG5cbi5tZGktYXJyb3ctdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNURcIjsgfVxuXG4ubWRpLWFycm93LXVwLWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MzZcIjsgfVxuXG4ubWRpLWFycm93LXVwLWJvbGQtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzM3XCI7IH1cblxuLm1kaS1hcnJvdy11cC1ib2xkLWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzM4XCI7IH1cblxuLm1kaS1hcnJvdy11cC1ib2xkLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA1RlwiOyB9XG5cbi5tZGktYXJyb3ctdXAtYm9sZC1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2MFwiOyB9XG5cbi5tZGktYXJyb3ctdXAtYm9sZC1oZXhhZ29uLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNjFcIjsgfVxuXG4ubWRpLWFycm93LXVwLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZDMlwiOyB9XG5cbi5tZGktYXJyb3ctdXAtZHJvcC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNjJcIjsgfVxuXG4ubWRpLWFycm93LXVwLWRyb3AtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNjNcIjsgfVxuXG4ubWRpLWFycm93LXVwLXRoaWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDVFXCI7IH1cblxuLm1kaS1hcnRpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MDJcIjsgfVxuXG4ubWRpLWFzc2lzdGFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2NFwiOyB9XG5cbi5tZGktYXN0ZXJpc2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QzNcIjsgfVxuXG4ubWRpLWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDY1XCI7IH1cblxuLm1kaS1hdGxhc3NpYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MDNcIjsgfVxuXG4ubWRpLWF0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NjdcIjsgfVxuXG4ubWRpLWF0dGFjaG1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNjZcIjsgfVxuXG4ubWRpLWF1ZGlvYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2N1wiOyB9XG5cbi5tZGktYXV0by1maXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNjhcIjsgfVxuXG4ubWRpLWF1dG8tdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDY5XCI7IH1cblxuLm1kaS1hdXRvcmVuZXc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNkFcIjsgfVxuXG4ubWRpLWF2LXRpbWVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDZCXCI7IH1cblxuLm1kaS1henVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwNFwiOyB9XG5cbi5tZGktYmFieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2Q1wiOyB9XG5cbi5tZGktYmFieS1idWdneTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4RVwiOyB9XG5cbi5tZGktYmFja2J1cmdlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2RFwiOyB9XG5cbi5tZGktYmFja3NwYWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDZFXCI7IH1cblxuLm1kaS1iYWNrdXAtcmVzdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA2RlwiOyB9XG5cbi5tZGktYmFuZGNhbXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NzRcIjsgfVxuXG4ubWRpLWJhbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNzBcIjsgfVxuXG4ubWRpLWJhcmNvZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNzFcIjsgfVxuXG4ubWRpLWJhcmNvZGUtc2NhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA3MlwiOyB9XG5cbi5tZGktYmFybGV5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDczXCI7IH1cblxuLm1kaS1iYXJyZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNzRcIjsgfVxuXG4ubWRpLWJhc2VjYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDc1XCI7IH1cblxuLm1kaS1iYXNrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwNzZcIjsgfVxuXG4ubWRpLWJhc2tldC1maWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDc3XCI7IH1cblxuLm1kaS1iYXNrZXQtdW5maWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDc4XCI7IH1cblxuLm1kaS1iYXNrZXRiYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODA1XCI7IH1cblxuLm1kaS1iYXR0ZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDc5XCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTEwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdBXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTIwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdCXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTMwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdDXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTQwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdEXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTUwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdFXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTYwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDdGXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTcwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDgwXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTgwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDgxXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LTkwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDgyXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDgzXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDg0XCI7IH1cblxuLm1kaS1iYXR0ZXJ5LWNoYXJnaW5nLTEwMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4NVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy0yMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4NlwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy0zMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4N1wiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy00MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4OFwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy02MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4OVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy04MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4QVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy05MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4QlwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwNlwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy0xMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwN1wiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy0yMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwOFwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy0zMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwOVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy00MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwQVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy01MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwQlwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy02MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwQ1wiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy03MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwRFwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy04MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwRVwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy05MDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgwRlwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxMFwiOyB9XG5cbi5tZGktYmF0dGVyeS1jaGFyZ2luZy13aXJlbGVzcy1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODExXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDhDXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LW5lZ2F0aXZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDhEXCI7IH1cblxuLm1kaS1iYXR0ZXJ5LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwOEVcIjsgfVxuXG4ubWRpLWJhdHRlcnktcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA4RlwiOyB9XG5cbi5tZGktYmF0dGVyeS1wb3NpdGl2ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5MFwiOyB9XG5cbi5tZGktYmF0dGVyeS11bmtub3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDkxXCI7IH1cblxuLm1kaS1iZWFjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5MlwiOyB9XG5cbi5tZGktYmVha2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjhGXCI7IH1cblxuLm1kaS1iZWF0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5N1wiOyB9XG5cbi5tZGktYmVlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5OFwiOyB9XG5cbi5tZGktYmVoYW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5OVwiOyB9XG5cbi5tZGktYmVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5QVwiOyB9XG5cbi5tZGktYmVsbC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwOUJcIjsgfVxuXG4ubWRpLWJlbGwtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5Q1wiOyB9XG5cbi5tZGktYmVsbC1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDlEXCI7IH1cblxuLm1kaS1iZWxsLXJpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwOUVcIjsgfVxuXG4ubWRpLWJlbGwtcmluZy1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDlGXCI7IH1cblxuLm1kaS1iZWxsLXNsZWVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEEwXCI7IH1cblxuLm1kaS1iZXRhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEExXCI7IH1cblxuLm1kaS1iaWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBMlwiOyB9XG5cbi5tZGktYmlrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBM1wiOyB9XG5cbi5tZGktYmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBNFwiOyB9XG5cbi5tZGktYmlub2N1bGFyczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBNVwiOyB9XG5cbi5tZGktYmlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEE2XCI7IH1cblxuLm1kaS1iaW9oYXphcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQTdcIjsgfVxuXG4ubWRpLWJpdGJ1Y2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBOFwiOyB9XG5cbi5tZGktYml0Y29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxMlwiOyB9XG5cbi5tZGktYmxhY2stbWVzYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBOVwiOyB9XG5cbi5tZGktYmxhY2tiZXJyeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBQVwiOyB9XG5cbi5tZGktYmxlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBQlwiOyB9XG5cbi5tZGktYmxpbmRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEFDXCI7IH1cblxuLm1kaS1ibG9jay1oZWxwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQURcIjsgfVxuXG4ubWRpLWJsb2dnZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQUVcIjsgfVxuXG4ubWRpLWJsdWV0b290aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBBRlwiOyB9XG5cbi5tZGktYmx1ZXRvb3RoLWF1ZGlvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEIwXCI7IH1cblxuLm1kaS1ibHVldG9vdGgtY29ubmVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBCMVwiOyB9XG5cbi5tZGktYmx1ZXRvb3RoLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBCMlwiOyB9XG5cbi5tZGktYmx1ZXRvb3RoLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEIzXCI7IH1cblxuLm1kaS1ibHVldG9vdGgtdHJhbnNmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQjRcIjsgfVxuXG4ubWRpLWJsdXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQjVcIjsgfVxuXG4ubWRpLWJsdXItbGluZWFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEI2XCI7IH1cblxuLm1kaS1ibHVyLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBCN1wiOyB9XG5cbi5tZGktYmx1ci1yYWRpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQjhcIjsgfVxuXG4ubWRpLWJvbWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OTBcIjsgfVxuXG4ubWRpLWJvbWItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkM0XCI7IH1cblxuLm1kaS1ib25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEI5XCI7IH1cblxuLm1kaS1ib29rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEJBXCI7IH1cblxuLm1kaS1ib29rLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUQ5XCI7IH1cblxuLm1kaS1ib29rLW11bHRpcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEJCXCI7IH1cblxuLm1kaS1ib29rLW11bHRpcGxlLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQkNcIjsgfVxuXG4ubWRpLWJvb2stb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBCRFwiOyB9XG5cbi5tZGktYm9vay1vcGVuLXBhZ2UtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVEQVwiOyB9XG5cbi5tZGktYm9vay1vcGVuLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQkVcIjsgfVxuXG4ubWRpLWJvb2stcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVEQlwiOyB9XG5cbi5tZGktYm9vay1zZWN1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OTlcIjsgfVxuXG4ubWRpLWJvb2stdW5zZWN1cmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OUFcIjsgfVxuXG4ubWRpLWJvb2stdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBCRlwiOyB9XG5cbi5tZGktYm9va21hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQzBcIjsgfVxuXG4ubWRpLWJvb2ttYXJrLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEMxXCI7IH1cblxuLm1kaS1ib29rbWFyay1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDMlwiOyB9XG5cbi5tZGktYm9va21hcmstb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDM1wiOyB9XG5cbi5tZGktYm9va21hcmstcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDNVwiOyB9XG5cbi5tZGktYm9va21hcmstcGx1cy1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEM0XCI7IH1cblxuLm1kaS1ib29rbWFyay1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQzZcIjsgfVxuXG4ubWRpLWJvb21ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RENcIjsgfVxuXG4ubWRpLWJvb3RzdHJhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZDNVwiOyB9XG5cbi5tZGktYm9yZGVyLWFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDN1wiOyB9XG5cbi5tZGktYm9yZGVyLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDOFwiOyB9XG5cbi5tZGktYm9yZGVyLWNvbG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEM5XCI7IH1cblxuLm1kaS1ib3JkZXItaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDQVwiOyB9XG5cbi5tZGktYm9yZGVyLWluc2lkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDQlwiOyB9XG5cbi5tZGktYm9yZGVyLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwQ0NcIjsgfVxuXG4ubWRpLWJvcmRlci1ub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMENEXCI7IH1cblxuLm1kaS1ib3JkZXItb3V0c2lkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBDRVwiOyB9XG5cbi5tZGktYm9yZGVyLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMENGXCI7IH1cblxuLm1kaS1ib3JkZXItc3R5bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRDBcIjsgfVxuXG4ubWRpLWJvcmRlci10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRDFcIjsgfVxuXG4ubWRpLWJvcmRlci12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBEMlwiOyB9XG5cbi5tZGktYm93LXRpZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3N1wiOyB9XG5cbi5tZGktYm93bDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYxN1wiOyB9XG5cbi5tZGktYm93bGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBEM1wiOyB9XG5cbi5tZGktYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEQ0XCI7IH1cblxuLm1kaS1ib3gtY3V0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEQ1XCI7IH1cblxuLm1kaS1ib3gtc2hhZG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjM3XCI7IH1cblxuLm1kaS1icmlkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MThcIjsgfVxuXG4ubWRpLWJyaWVmY2FzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBENlwiOyB9XG5cbi5tZGktYnJpZWZjYXNlLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEQ3XCI7IH1cblxuLm1kaS1icmllZmNhc2UtZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRDhcIjsgfVxuXG4ubWRpLWJyaWVmY2FzZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODEzXCI7IH1cblxuLm1kaS1icmllZmNhc2UtdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEQ5XCI7IH1cblxuLm1kaS1icmlnaHRuZXNzLTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwREFcIjsgfVxuXG4ubWRpLWJyaWdodG5lc3MtMjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBEQlwiOyB9XG5cbi5tZGktYnJpZ2h0bmVzcy0zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMERDXCI7IH1cblxuLm1kaS1icmlnaHRuZXNzLTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRERcIjsgfVxuXG4ubWRpLWJyaWdodG5lc3MtNTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBERVwiOyB9XG5cbi5tZGktYnJpZ2h0bmVzcy02OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMERGXCI7IH1cblxuLm1kaS1icmlnaHRuZXNzLTc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRTBcIjsgfVxuXG4ubWRpLWJyaWdodG5lc3MtYXV0bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBFMVwiOyB9XG5cbi5tZGktYnJvb206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRTJcIjsgfVxuXG4ubWRpLWJydXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEUzXCI7IH1cblxuLm1kaS1idWZmZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTlcIjsgfVxuXG4ubWRpLWJ1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBFNFwiOyB9XG5cbi5tZGktYnVsbGV0aW4tYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRTVcIjsgfVxuXG4ubWRpLWJ1bGxob3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEU2XCI7IH1cblxuLm1kaS1idWxsc2V5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVERFwiOyB9XG5cbi5tZGktYnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEU3XCI7IH1cblxuLm1kaS1idXMtYXJ0aWN1bGF0ZWQtZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzlCXCI7IH1cblxuLm1kaS1idXMtYXJ0aWN1bGF0ZWQtZnJvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OUNcIjsgfVxuXG4ubWRpLWJ1cy1kb3VibGUtZGVja2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzlEXCI7IH1cblxuLm1kaS1idXMtc2Nob29sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzlFXCI7IH1cblxuLm1kaS1idXMtc2lkZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc5RlwiOyB9XG5cbi5tZGktY2FjaGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEU4XCI7IH1cblxuLm1kaS1jYWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEU5XCI7IH1cblxuLm1kaS1jYWtlLWxheWVyZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRUFcIjsgfVxuXG4ubWRpLWNha2UtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBFQlwiOyB9XG5cbi5tZGktY2FsY3VsYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBFQ1wiOyB9XG5cbi5tZGktY2FsZW5kYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRURcIjsgfVxuXG4ubWRpLWNhbGVuZGFyLWJsYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEVFXCI7IH1cblxuLm1kaS1jYWxlbmRhci1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBFRlwiOyB9XG5cbi5tZGktY2FsZW5kYXItY2xvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRjBcIjsgfVxuXG4ubWRpLWNhbGVuZGFyLW11bHRpcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEYxXCI7IH1cblxuLm1kaS1jYWxlbmRhci1tdWx0aXBsZS1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBGMlwiOyB9XG5cbi5tZGktY2FsZW5kYXItcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjBGM1wiOyB9XG5cbi5tZGktY2FsZW5kYXItcXVlc3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OTFcIjsgfVxuXG4ubWRpLWNhbGVuZGFyLXJhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjc4XCI7IH1cblxuLm1kaS1jYWxlbmRhci1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRjRcIjsgfVxuXG4ubWRpLWNhbGVuZGFyLXRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRjVcIjsgfVxuXG4ubWRpLWNhbGVuZGFyLXRvZGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEY2XCI7IH1cblxuLm1kaS1jYWxsLW1hZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRjdcIjsgfVxuXG4ubWRpLWNhbGwtbWVyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRjhcIjsgfVxuXG4ubWRpLWNhbGwtbWlzc2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEY5XCI7IH1cblxuLm1kaS1jYWxsLXJlY2VpdmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEZBXCI7IH1cblxuLm1kaS1jYWxsLXNwbGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEZCXCI7IH1cblxuLm1kaS1jYW1jb3JkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRkNcIjsgfVxuXG4ubWRpLWNhbWNvcmRlci1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwRkRcIjsgfVxuXG4ubWRpLWNhbWNvcmRlci1ib3gtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEZFXCI7IH1cblxuLm1kaS1jYW1jb3JkZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMEZGXCI7IH1cblxuLm1kaS1jYW1lcmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDBcIjsgfVxuXG4ubWRpLWNhbWVyYS1idXJzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY5MlwiOyB9XG5cbi5tZGktY2FtZXJhLWVuaGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDFcIjsgfVxuXG4ubWRpLWNhbWVyYS1mcm9udDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEwMlwiOyB9XG5cbi5tZGktY2FtZXJhLWZyb250LXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDNcIjsgfVxuXG4ubWRpLWNhbWVyYS1nb3BybzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdBMFwiOyB9XG5cbi5tZGktY2FtZXJhLWlyaXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDRcIjsgfVxuXG4ubWRpLWNhbWVyYS1tZXRlcmluZy1jZW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QTFcIjsgfVxuXG4ubWRpLWNhbWVyYS1tZXRlcmluZy1tYXRyaXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QTJcIjsgfVxuXG4ubWRpLWNhbWVyYS1tZXRlcmluZy1wYXJ0aWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0EzXCI7IH1cblxuLm1kaS1jYW1lcmEtbWV0ZXJpbmctc3BvdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdBNFwiOyB9XG5cbi5tZGktY2FtZXJhLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVERlwiOyB9XG5cbi5tZGktY2FtZXJhLXBhcnR5LW1vZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDVcIjsgfVxuXG4ubWRpLWNhbWVyYS1yZWFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTA2XCI7IH1cblxuLm1kaS1jYW1lcmEtcmVhci12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTA3XCI7IH1cblxuLm1kaS1jYW1lcmEtc3dpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTA4XCI7IH1cblxuLm1kaS1jYW1lcmEtdGltZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMDlcIjsgfVxuXG4ubWRpLWNhbmNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczOVwiOyB9XG5cbi5tZGktY2FuZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUUyXCI7IH1cblxuLm1kaS1jYW5keWNhbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMEFcIjsgfVxuXG4ubWRpLWNhbm5hYmlzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0E1XCI7IH1cblxuLm1kaS1jYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMEJcIjsgfVxuXG4ubWRpLWNhci1iYXR0ZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTBDXCI7IH1cblxuLm1kaS1jYXItY29ubmVjdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTBEXCI7IH1cblxuLm1kaS1jYXItY29udmVydGlibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QTZcIjsgfVxuXG4ubWRpLWNhci1lc3RhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QTdcIjsgfVxuXG4ubWRpLWNhci1oYXRjaGJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QThcIjsgfVxuXG4ubWRpLWNhci1waWNrdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QTlcIjsgfVxuXG4ubWRpLWNhci1zaWRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0FBXCI7IH1cblxuLm1kaS1jYXItc3BvcnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0FCXCI7IH1cblxuLm1kaS1jYXItd2FzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEwRVwiOyB9XG5cbi5tZGktY2FyYXZhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdBQ1wiOyB9XG5cbi5tZGktY2FyZHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MzhcIjsgfVxuXG4ubWRpLWNhcmRzLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MzlcIjsgfVxuXG4ubWRpLWNhcmRzLXBsYXlpbmctb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzQVwiOyB9XG5cbi5tZGktY2FyZHMtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZDNlwiOyB9XG5cbi5tZGktY2Fycm90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTBGXCI7IH1cblxuLm1kaS1jYXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTEwXCI7IH1cblxuLm1kaS1jYXJ0LW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2QlwiOyB9XG5cbi5tZGktY2FydC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTExXCI7IH1cblxuLm1kaS1jYXJ0LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMTJcIjsgfVxuXG4ubWRpLWNhc2Utc2Vuc2l0aXZlLWFsdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjExM1wiOyB9XG5cbi5tZGktY2FzaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjExNFwiOyB9XG5cbi5tZGktY2FzaC0xMDA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMTVcIjsgfVxuXG4ubWRpLWNhc2gtbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMTZcIjsgfVxuXG4ubWRpLWNhc2gtdXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTE3XCI7IH1cblxuLm1kaS1jYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTE4XCI7IH1cblxuLm1kaS1jYXN0LWNvbm5lY3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjExOVwiOyB9XG5cbi5tZGktY2FzdC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3ODlcIjsgfVxuXG4ubWRpLWNhc3RsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjExQVwiOyB9XG5cbi5tZGktY2F0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTFCXCI7IH1cblxuLm1kaS1jY3R2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0FEXCI7IH1cblxuLm1kaS1jZWlsaW5nLWxpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzY4XCI7IH1cblxuLm1kaS1jZWxscGhvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMUNcIjsgfVxuXG4ubWRpLWNlbGxwaG9uZS1hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTFEXCI7IH1cblxuLm1kaS1jZWxscGhvbmUtYmFzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMUVcIjsgfVxuXG4ubWRpLWNlbGxwaG9uZS1kb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTFGXCI7IH1cblxuLm1kaS1jZWxscGhvbmUtaXBob25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTIwXCI7IH1cblxuLm1kaS1jZWxscGhvbmUtbGluazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEyMVwiOyB9XG5cbi5tZGktY2VsbHBob25lLWxpbmstb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTIyXCI7IH1cblxuLm1kaS1jZWxscGhvbmUtc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMjNcIjsgfVxuXG4ubWRpLWNlbGxwaG9uZS13aXJlbGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxNFwiOyB9XG5cbi5tZGktY2VydGlmaWNhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMjRcIjsgfVxuXG4ubWRpLWNoYWlyLXNjaG9vbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEyNVwiOyB9XG5cbi5tZGktY2hhcnQtYXJjOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTI2XCI7IH1cblxuLm1kaS1jaGFydC1hcmVhc3BsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTI3XCI7IH1cblxuLm1kaS1jaGFydC1iYXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMjhcIjsgfVxuXG4ubWRpLWNoYXJ0LWJhci1zdGFja2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzY5XCI7IH1cblxuLm1kaS1jaGFydC1idWJibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RTNcIjsgfVxuXG4ubWRpLWNoYXJ0LWRvbnV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0FFXCI7IH1cblxuLm1kaS1jaGFydC1kb251dC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0FGXCI7IH1cblxuLm1kaS1jaGFydC1nYW50dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2Q1wiOyB9XG5cbi5tZGktY2hhcnQtaGlzdG9ncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTI5XCI7IH1cblxuLm1kaS1jaGFydC1saW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTJBXCI7IH1cblxuLm1kaS1jaGFydC1saW5lLXN0YWNrZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NkFcIjsgfVxuXG4ubWRpLWNoYXJ0LWxpbmUtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdCMFwiOyB9XG5cbi5tZGktY2hhcnQtcGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTJCXCI7IH1cblxuLm1kaS1jaGFydC1zY2F0dGVycGxvdC1oZXhiaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NkRcIjsgfVxuXG4ubWRpLWNoYXJ0LXRpbWVsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjZFXCI7IH1cblxuLm1kaS1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEyQ1wiOyB9XG5cbi5tZGktY2hlY2stYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTJEXCI7IH1cblxuLm1kaS1jaGVjay1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RTBcIjsgfVxuXG4ubWRpLWNoZWNrLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUUxXCI7IH1cblxuLm1kaS1jaGVja2JveC1ibGFuazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEyRVwiOyB9XG5cbi5tZGktY2hlY2tib3gtYmxhbmstY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTJGXCI7IH1cblxuLm1kaS1jaGVja2JveC1ibGFuay1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzMFwiOyB9XG5cbi5tZGktY2hlY2tib3gtYmxhbmstb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzMVwiOyB9XG5cbi5tZGktY2hlY2tib3gtbWFya2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTMyXCI7IH1cblxuLm1kaS1jaGVja2JveC1tYXJrZWQtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTMzXCI7IH1cblxuLm1kaS1jaGVja2JveC1tYXJrZWQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxMzRcIjsgfVxuXG4ubWRpLWNoZWNrYm94LW1hcmtlZC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTM1XCI7IH1cblxuLm1kaS1jaGVja2JveC1tdWx0aXBsZS1ibGFuazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzNlwiOyB9XG5cbi5tZGktY2hlY2tib3gtbXVsdGlwbGUtYmxhbmstY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjNCXCI7IH1cblxuLm1kaS1jaGVja2JveC1tdWx0aXBsZS1ibGFuay1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYzQ1wiOyB9XG5cbi5tZGktY2hlY2tib3gtbXVsdGlwbGUtYmxhbmstb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzN1wiOyB9XG5cbi5tZGktY2hlY2tib3gtbXVsdGlwbGUtbWFya2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTM4XCI7IH1cblxuLm1kaS1jaGVja2JveC1tdWx0aXBsZS1tYXJrZWQtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjNEXCI7IH1cblxuLm1kaS1jaGVja2JveC1tdWx0aXBsZS1tYXJrZWQtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2M0VcIjsgfVxuXG4ubWRpLWNoZWNrYm94LW11bHRpcGxlLW1hcmtlZC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTM5XCI7IH1cblxuLm1kaS1jaGVja2VyYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxM0FcIjsgfVxuXG4ubWRpLWNoZW1pY2FsLXdlYXBvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzQlwiOyB9XG5cbi5tZGktY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzQ1wiOyB9XG5cbi5tZGktY2hldnJvbi1kb3VibGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjEzRFwiOyB9XG5cbi5tZGktY2hldnJvbi1kb3VibGUtcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxM0VcIjsgfVxuXG4ubWRpLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTNGXCI7IH1cblxuLm1kaS1jaGV2cm9uLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNDBcIjsgfVxuXG4ubWRpLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0MVwiOyB9XG5cbi5tZGktY2hldnJvbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0MlwiOyB9XG5cbi5tZGktY2hldnJvbi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0M1wiOyB9XG5cbi5tZGktY2hpbGktaG90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0IxXCI7IH1cblxuLm1kaS1jaGlsaS1tZWRpdW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjJcIjsgfVxuXG4ubWRpLWNoaWxpLW1pbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjNcIjsgfVxuXG4ubWRpLWNoaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MUFcIjsgfVxuXG4ubWRpLWNodXJjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0NFwiOyB9XG5cbi5tZGktY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzY0XCI7IH1cblxuLm1kaS1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2NVwiOyB9XG5cbi5tZGktY2lzY28td2ViZXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNDVcIjsgfVxuXG4ubWRpLWNpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNDZcIjsgfVxuXG4ubWRpLWNsaXBib2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0N1wiOyB9XG5cbi5tZGktY2xpcGJvYXJkLWFjY291bnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNDhcIjsgfVxuXG4ubWRpLWNsaXBib2FyZC1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0OVwiOyB9XG5cbi5tZGktY2xpcGJvYXJkLWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNEFcIjsgfVxuXG4ubWRpLWNsaXBib2FyZC1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTRCXCI7IH1cblxuLm1kaS1jbGlwYm9hcmQtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNENcIjsgfVxuXG4ubWRpLWNsaXBib2FyZC1mbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkM3XCI7IH1cblxuLm1kaS1jbGlwYm9hcmQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE0RFwiOyB9XG5cbi5tZGktY2xpcGJvYXJkLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NTBcIjsgfVxuXG4ubWRpLWNsaXBib2FyZC10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTRFXCI7IH1cblxuLm1kaS1jbGlwcHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNEZcIjsgfVxuXG4ubWRpLWNsb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTUwXCI7IH1cblxuLm1kaS1jbG9jay1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVDRVwiOyB9XG5cbi5tZGktY2xvY2stZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTUxXCI7IH1cblxuLm1kaS1jbG9jay1mYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTUyXCI7IH1cblxuLm1kaS1jbG9jay1pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE1M1wiOyB9XG5cbi5tZGktY2xvY2stb3V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTU0XCI7IH1cblxuLm1kaS1jbG9jay1zdGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE1NVwiOyB9XG5cbi5tZGktY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNTZcIjsgfVxuXG4ubWRpLWNsb3NlLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE1N1wiOyB9XG5cbi5tZGktY2xvc2UtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNThcIjsgfVxuXG4ubWRpLWNsb3NlLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE1OVwiOyB9XG5cbi5tZGktY2xvc2UtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNUFcIjsgfVxuXG4ubWRpLWNsb3NlLW5ldHdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNUJcIjsgfVxuXG4ubWRpLWNsb3NlLW9jdGFnb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNUNcIjsgfVxuXG4ubWRpLWNsb3NlLW9jdGFnb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE1RFwiOyB9XG5cbi5tZGktY2xvc2Utb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZDOFwiOyB9XG5cbi5tZGktY2xvc2VkLWNhcHRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNUVcIjsgfVxuXG4ubWRpLWNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTVGXCI7IH1cblxuLm1kaS1jbG91ZC1icmFjZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjRcIjsgfVxuXG4ubWRpLWNsb3VkLWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTYwXCI7IH1cblxuLm1kaS1jbG91ZC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNjFcIjsgfVxuXG4ubWRpLWNsb3VkLWRvd25sb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTYyXCI7IH1cblxuLm1kaS1jbG91ZC1vZmYtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2NFwiOyB9XG5cbi5tZGktY2xvdWQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2M1wiOyB9XG5cbi5tZGktY2xvdWQtcHJpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNjVcIjsgfVxuXG4ubWRpLWNsb3VkLXByaW50LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNjZcIjsgfVxuXG4ubWRpLWNsb3VkLXN5bmM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2M0ZcIjsgfVxuXG4ubWRpLWNsb3VkLXRhZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjVcIjsgfVxuXG4ubWRpLWNsb3VkLXVwbG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2N1wiOyB9XG5cbi5tZGktY2xvdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODE1XCI7IH1cblxuLm1kaS1jb2RlLWFycmF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTY4XCI7IH1cblxuLm1kaS1jb2RlLWJyYWNlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2OVwiOyB9XG5cbi5tZGktY29kZS1icmFja2V0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2QVwiOyB9XG5cbi5tZGktY29kZS1lcXVhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2QlwiOyB9XG5cbi5tZGktY29kZS1ncmVhdGVyLXRoYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNkNcIjsgfVxuXG4ubWRpLWNvZGUtZ3JlYXRlci10aGFuLW9yLWVxdWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTZEXCI7IH1cblxuLm1kaS1jb2RlLWxlc3MtdGhhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE2RVwiOyB9XG5cbi5tZGktY29kZS1sZXNzLXRoYW4tb3ItZXF1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNkZcIjsgfVxuXG4ubWRpLWNvZGUtbm90LWVxdWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTcwXCI7IH1cblxuLm1kaS1jb2RlLW5vdC1lcXVhbC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTcxXCI7IH1cblxuLm1kaS1jb2RlLXBhcmVudGhlc2VzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTcyXCI7IH1cblxuLm1kaS1jb2RlLXN0cmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3M1wiOyB9XG5cbi5tZGktY29kZS10YWdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTc0XCI7IH1cblxuLm1kaS1jb2RlLXRhZ3MtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OTNcIjsgfVxuXG4ubWRpLWNvZGVwZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxNzVcIjsgfVxuXG4ubWRpLWNvZmZlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3NlwiOyB9XG5cbi5tZGktY29mZmVlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QzlcIjsgfVxuXG4ubWRpLWNvZmZlZS10by1nbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3N1wiOyB9XG5cbi5tZGktY29pbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3OFwiOyB9XG5cbi5tZGktY29pbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OTRcIjsgfVxuXG4ubWRpLWNvbGxhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NDBcIjsgfVxuXG4ubWRpLWNvbG9yLWhlbHBlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3OVwiOyB9XG5cbi5tZGktY29tbWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3QVwiOyB9XG5cbi5tZGktY29tbWVudC1hY2NvdW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTdCXCI7IH1cblxuLm1kaS1jb21tZW50LWFjY291bnQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3Q1wiOyB9XG5cbi5tZGktY29tbWVudC1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE3RFwiOyB9XG5cbi5tZGktY29tbWVudC1hbGVydC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTdFXCI7IH1cblxuLm1kaS1jb21tZW50LWNoZWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTdGXCI7IH1cblxuLm1kaS1jb21tZW50LWNoZWNrLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxODBcIjsgfVxuXG4ubWRpLWNvbW1lbnQtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4MVwiOyB9XG5cbi5tZGktY29tbWVudC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTgyXCI7IH1cblxuLm1kaS1jb21tZW50LXBsdXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4M1wiOyB9XG5cbi5tZGktY29tbWVudC1wcm9jZXNzaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTg0XCI7IH1cblxuLm1kaS1jb21tZW50LXByb2Nlc3Npbmctb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4NVwiOyB9XG5cbi5tZGktY29tbWVudC1xdWVzdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxNlwiOyB9XG5cbi5tZGktY29tbWVudC1xdWVzdGlvbi1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTg2XCI7IH1cblxuLm1kaS1jb21tZW50LXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVERVwiOyB9XG5cbi5tZGktY29tbWVudC1yZW1vdmUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4N1wiOyB9XG5cbi5tZGktY29tbWVudC10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTg4XCI7IH1cblxuLm1kaS1jb21tZW50LXRleHQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4OVwiOyB9XG5cbi5tZGktY29tcGFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4QVwiOyB9XG5cbi5tZGktY29tcGFzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4QlwiOyB9XG5cbi5tZGktY29tcGFzcy1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMThDXCI7IH1cblxuLm1kaS1jb25zb2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMThEXCI7IH1cblxuLm1kaS1jb25zb2xlLWxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjZcIjsgfVxuXG4ubWRpLWNvbnRhY3QtbWFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4RVwiOyB9XG5cbi5tZGktY29udGFjdHM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2Q0FcIjsgfVxuXG4ubWRpLWNvbnRlbnQtY29weTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE4RlwiOyB9XG5cbi5tZGktY29udGVudC1jdXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOTBcIjsgfVxuXG4ubWRpLWNvbnRlbnQtZHVwbGljYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTkxXCI7IH1cblxuLm1kaS1jb250ZW50LXBhc3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTkyXCI7IH1cblxuLm1kaS1jb250ZW50LXNhdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOTNcIjsgfVxuXG4ubWRpLWNvbnRlbnQtc2F2ZS1hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOTRcIjsgfVxuXG4ubWRpLWNvbnRlbnQtc2F2ZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODE3XCI7IH1cblxuLm1kaS1jb250ZW50LXNhdmUtc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MUJcIjsgfVxuXG4ubWRpLWNvbnRyYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTk1XCI7IH1cblxuLm1kaS1jb250cmFzdC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOTZcIjsgfVxuXG4ubWRpLWNvbnRyYXN0LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE5N1wiOyB9XG5cbi5tZGktY29va2llOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTk4XCI7IH1cblxuLm1kaS1jb3B5cmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RTZcIjsgfVxuXG4ubWRpLWNvcm46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QjdcIjsgfVxuXG4ubWRpLWNvdW50ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOTlcIjsgfVxuXG4ubWRpLWNvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE5QVwiOyB9XG5cbi5tZGktY3JlYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQzlcIjsgfVxuXG4ubWRpLWNyZWRpdC1jYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTlCXCI7IH1cblxuLm1kaS1jcmVkaXQtY2FyZC1tdWx0aXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjE5Q1wiOyB9XG5cbi5tZGktY3JlZGl0LWNhcmQtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUU0XCI7IH1cblxuLm1kaS1jcmVkaXQtY2FyZC1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjc1XCI7IH1cblxuLm1kaS1jcmVkaXQtY2FyZC1zY2FuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTlEXCI7IH1cblxuLm1kaS1jcm9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMTlFXCI7IH1cblxuLm1kaS1jcm9wLWZyZWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxOUZcIjsgfVxuXG4ubWRpLWNyb3AtbGFuZHNjYXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUEwXCI7IH1cblxuLm1kaS1jcm9wLXBvcnRyYWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUExXCI7IH1cblxuLm1kaS1jcm9wLXJvdGF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY5NVwiOyB9XG5cbi5tZGktY3JvcC1zcXVhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQTJcIjsgfVxuXG4ubWRpLWNyb3NzaGFpcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQTNcIjsgfVxuXG4ubWRpLWNyb3NzaGFpcnMtZ3BzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUE0XCI7IH1cblxuLm1kaS1jcm93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFBNVwiOyB9XG5cbi5tZGktY3ViZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFBNlwiOyB9XG5cbi5tZGktY3ViZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUE3XCI7IH1cblxuLm1kaS1jdWJlLXNlbmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQThcIjsgfVxuXG4ubWRpLWN1YmUtdW5mb2xkZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQTlcIjsgfVxuXG4ubWRpLWN1cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFBQVwiOyB9XG5cbi5tZGktY3VwLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVFNVwiOyB9XG5cbi5tZGktY3VwLXdhdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUFCXCI7IH1cblxuLm1kaS1jdXJyZW5jeS1idGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQUNcIjsgfVxuXG4ubWRpLWN1cnJlbmN5LWNoZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdCOFwiOyB9XG5cbi5tZGktY3VycmVuY3ktY255OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0I5XCI7IH1cblxuLm1kaS1jdXJyZW5jeS1ldGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QkFcIjsgfVxuXG4ubWRpLWN1cnJlbmN5LWV1cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFBRFwiOyB9XG5cbi5tZGktY3VycmVuY3ktZ2JwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUFFXCI7IH1cblxuLm1kaS1jdXJyZW5jeS1pbnI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQUZcIjsgfVxuXG4ubWRpLWN1cnJlbmN5LWpweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdCQlwiOyB9XG5cbi5tZGktY3VycmVuY3kta3J3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0JDXCI7IH1cblxuLm1kaS1jdXJyZW5jeS1uZ246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQjBcIjsgfVxuXG4ubWRpLWN1cnJlbmN5LXJ1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCMVwiOyB9XG5cbi5tZGktY3VycmVuY3ktc2lnbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdCRFwiOyB9XG5cbi5tZGktY3VycmVuY3ktdHJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUIyXCI7IH1cblxuLm1kaS1jdXJyZW5jeS10d2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QkVcIjsgfVxuXG4ubWRpLWN1cnJlbmN5LXVzZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCM1wiOyB9XG5cbi5tZGktY3VycmVuY3ktdXNkLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3OVwiOyB9XG5cbi5tZGktY3Vyc29yLWRlZmF1bHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQjRcIjsgfVxuXG4ubWRpLWN1cnNvci1kZWZhdWx0LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQjVcIjsgfVxuXG4ubWRpLWN1cnNvci1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUI2XCI7IH1cblxuLm1kaS1jdXJzb3ItcG9pbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCN1wiOyB9XG5cbi5tZGktY3Vyc29yLXRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RTdcIjsgfVxuXG4ubWRpLWRhdGFiYXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUI4XCI7IH1cblxuLm1kaS1kYXRhYmFzZS1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCOVwiOyB9XG5cbi5tZGktZGF0YWJhc2UtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCQVwiOyB9XG5cbi5tZGktZGVidWctc3RlcC1pbnRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUJCXCI7IH1cblxuLm1kaS1kZWJ1Zy1zdGVwLW91dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCQ1wiOyB9XG5cbi5tZGktZGVidWctc3RlcC1vdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUJEXCI7IH1cblxuLm1kaS1kZWNhZ3JhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2QlwiOyB9XG5cbi5tZGktZGVjYWdyYW0tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2Q1wiOyB9XG5cbi5tZGktZGVjaW1hbC1kZWNyZWFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCRVwiOyB9XG5cbi5tZGktZGVjaW1hbC1pbmNyZWFzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFCRlwiOyB9XG5cbi5tZGktZGVsZXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUMwXCI7IH1cblxuLm1kaS1kZWxldGUtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjgyXCI7IH1cblxuLm1kaS1kZWxldGUtZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2Q0JcIjsgfVxuXG4ubWRpLWRlbGV0ZS1mb3JldmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUU4XCI7IH1cblxuLm1kaS1kZWxldGUtcmVzdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxOFwiOyB9XG5cbi5tZGktZGVsZXRlLXN3ZWVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUU5XCI7IH1cblxuLm1kaS1kZWxldGUtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDMVwiOyB9XG5cbi5tZGktZGVsdGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQzJcIjsgfVxuXG4ubWRpLWRlc2twaG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDM1wiOyB9XG5cbi5tZGktZGVza3RvcC1jbGFzc2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0JGXCI7IH1cblxuLm1kaS1kZXNrdG9wLW1hYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDNFwiOyB9XG5cbi5tZGktZGVza3RvcC10b3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDNVwiOyB9XG5cbi5tZGktZGV0YWlsczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDNlwiOyB9XG5cbi5tZGktZGV2ZWxvcGVyLWJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjk2XCI7IH1cblxuLm1kaS1kZXZpYW50YXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUM3XCI7IH1cblxuLm1kaS1kaWFscGFkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjFDXCI7IH1cblxuLm1kaS1kaWFtb25kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUM4XCI7IH1cblxuLm1kaS1kaWNlLTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQ0FcIjsgfVxuXG4ubWRpLWRpY2UtMjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDQlwiOyB9XG5cbi5tZGktZGljZS0zOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUNDXCI7IH1cblxuLm1kaS1kaWNlLTQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxQ0RcIjsgfVxuXG4ubWRpLWRpY2UtNTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFDRVwiOyB9XG5cbi5tZGktZGljZS02OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUNGXCI7IH1cblxuLm1kaS1kaWNlLWQxMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2RVwiOyB9XG5cbi5tZGktZGljZS1kMjA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RUFcIjsgfVxuXG4ubWRpLWRpY2UtZDQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RUJcIjsgfVxuXG4ubWRpLWRpY2UtZDY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RUNcIjsgfVxuXG4ubWRpLWRpY2UtZDg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RURcIjsgfVxuXG4ubWRpLWRpY2UtbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NkRcIjsgfVxuXG4ubWRpLWRpY3Rpb25hcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MURcIjsgfVxuXG4ubWRpLWRpcC1zd2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QzBcIjsgfVxuXG4ubWRpLWRpcmVjdGlvbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRDBcIjsgfVxuXG4ubWRpLWRpcmVjdGlvbnMtZm9yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0MVwiOyB9XG5cbi5tZGktZGlzY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2RlwiOyB9XG5cbi5tZGktZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVFRVwiOyB9XG5cbi5tZGktZGlzay1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFEMVwiOyB9XG5cbi5tZGktZGlzcXVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUQyXCI7IH1cblxuLm1kaS1kaXNxdXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFEM1wiOyB9XG5cbi5tZGktZGl2aXNpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRDRcIjsgfVxuXG4ubWRpLWRpdmlzaW9uLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFENVwiOyB9XG5cbi5tZGktZG5hOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjgzXCI7IH1cblxuLm1kaS1kbnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRDZcIjsgfVxuXG4ubWRpLWRvLW5vdC1kaXN0dXJiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjk3XCI7IH1cblxuLm1kaS1kby1ub3QtZGlzdHVyYi1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OThcIjsgfVxuXG4ubWRpLWRvbGJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkIyXCI7IH1cblxuLm1kaS1kb21haW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRDdcIjsgfVxuXG4ubWRpLWRvbmtleTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDMVwiOyB9XG5cbi5tZGktZG9vcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxOVwiOyB9XG5cbi5tZGktZG9vci1jbG9zZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MUFcIjsgfVxuXG4ubWRpLWRvb3Itb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgxQlwiOyB9XG5cbi5tZGktZG90cy1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUQ4XCI7IH1cblxuLm1kaS1kb3RzLWhvcml6b250YWwtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0MyXCI7IH1cblxuLm1kaS1kb3RzLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUQ5XCI7IH1cblxuLm1kaS1kb3RzLXZlcnRpY2FsLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDM1wiOyB9XG5cbi5tZGktZG91YmFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjk5XCI7IH1cblxuLm1kaS1kb3dubG9hZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFEQVwiOyB9XG5cbi5tZGktZG93bmxvYWQtbmV0d29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZGM1wiOyB9XG5cbi5tZGktZHJhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFEQlwiOyB9XG5cbi5tZGktZHJhZy1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMURDXCI7IH1cblxuLm1kaS1kcmFnLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUREXCI7IH1cblxuLm1kaS1kcmF3aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMURFXCI7IH1cblxuLm1kaS1kcmF3aW5nLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFERlwiOyB9XG5cbi5tZGktZHJpYmJibGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRTBcIjsgfVxuXG4ubWRpLWRyaWJiYmxlLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFFMVwiOyB9XG5cbi5tZGktZHJvbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRTJcIjsgfVxuXG4ubWRpLWRyb3Bib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRTNcIjsgfVxuXG4ubWRpLWRydXBhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFFNFwiOyB9XG5cbi5tZGktZHVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFFNVwiOyB9XG5cbi5tZGktZHVtYmJlbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRTZcIjsgfVxuXG4ubWRpLWVhci1oZWFyaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0M0XCI7IH1cblxuLm1kaS1lYXJ0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFFN1wiOyB9XG5cbi5tZGktZWFydGgtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkNDXCI7IH1cblxuLm1kaS1lYXJ0aC1ib3gtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkNEXCI7IH1cblxuLm1kaS1lYXJ0aC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRThcIjsgfVxuXG4ubWRpLWVkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRTlcIjsgfVxuXG4ubWRpLWVqZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUVBXCI7IH1cblxuLm1kaS1lbGVwaGFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDNVwiOyB9XG5cbi5tZGktZWxldmF0aW9uLWRlY2xpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRUJcIjsgfVxuXG4ubWRpLWVsZXZhdGlvbi1yaXNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUVDXCI7IH1cblxuLm1kaS1lbGV2YXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFFRFwiOyB9XG5cbi5tZGktZW1haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRUVcIjsgfVxuXG4ubWRpLWVtYWlsLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkNFXCI7IH1cblxuLm1kaS1lbWFpbC1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUVGXCI7IH1cblxuLm1kaS1lbWFpbC1vcGVuLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RUZcIjsgfVxuXG4ubWRpLWVtYWlsLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRjBcIjsgfVxuXG4ubWRpLWVtYWlsLXNlY3VyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGMVwiOyB9XG5cbi5tZGktZW1haWwtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVGMFwiOyB9XG5cbi5tZGktZW1ieTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCM1wiOyB9XG5cbi5tZGktZW1vdGljb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRjJcIjsgfVxuXG4ubWRpLWVtb3RpY29uLWNvb2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRjNcIjsgfVxuXG4ubWRpLWVtb3RpY29uLWRlYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OUFcIjsgfVxuXG4ubWRpLWVtb3RpY29uLWRldmlsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUY0XCI7IH1cblxuLm1kaS1lbW90aWNvbi1leGNpdGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjlCXCI7IH1cblxuLm1kaS1lbW90aWNvbi1oYXBweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGNVwiOyB9XG5cbi5tZGktZW1vdGljb24tbmV1dHJhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGNlwiOyB9XG5cbi5tZGktZW1vdGljb24tcG9vcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGN1wiOyB9XG5cbi5tZGktZW1vdGljb24tc2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUY4XCI7IH1cblxuLm1kaS1lbW90aWNvbi10b25ndWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRjlcIjsgfVxuXG4ubWRpLWVuZ2luZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGQVwiOyB9XG5cbi5tZGktZW5naW5lLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRkJcIjsgfVxuXG4ubWRpLWVxdWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMUZDXCI7IH1cblxuLm1kaS1lcXVhbC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYxRkRcIjsgfVxuXG4ubWRpLWVyYXNlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGRVwiOyB9XG5cbi5tZGktZXJhc2VyLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NDJcIjsgfVxuXG4ubWRpLWVzY2FsYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjFGRlwiOyB9XG5cbi5tZGktZXRoZXJuZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMDBcIjsgfVxuXG4ubWRpLWV0aGVybmV0LWNhYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjAxXCI7IH1cblxuLm1kaS1ldGhlcm5ldC1jYWJsZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMDJcIjsgfVxuXG4ubWRpLWV0c3k6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMDNcIjsgfVxuXG4ubWRpLWV2LXN0YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RjFcIjsgfVxuXG4ubWRpLWV2ZW50YnJpdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3QzZcIjsgfVxuXG4ubWRpLWV2ZXJub3RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjA0XCI7IH1cblxuLm1kaS1leGNsYW1hdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIwNVwiOyB9XG5cbi5tZGktZXhpdC10by1hcHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMDZcIjsgfVxuXG4ubWRpLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIwN1wiOyB9XG5cbi5tZGktZXllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjA4XCI7IH1cblxuLm1kaS1leWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjA5XCI7IH1cblxuLm1kaS1leWUtb2ZmLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RDBcIjsgfVxuXG4ubWRpLWV5ZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkNGXCI7IH1cblxuLm1kaS1leWVkcm9wcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjBBXCI7IH1cblxuLm1kaS1leWVkcm9wcGVyLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMEJcIjsgfVxuXG4ubWRpLWZhY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NDNcIjsgfVxuXG4ubWRpLWZhY2UtcHJvZmlsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0NFwiOyB9XG5cbi5tZGktZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMENcIjsgfVxuXG4ubWRpLWZhY2Vib29rLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIwRFwiOyB9XG5cbi5tZGktZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjBFXCI7IH1cblxuLm1kaS1mYWN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjBGXCI7IH1cblxuLm1kaS1mYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMTBcIjsgfVxuXG4ubWRpLWZhbi1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MUNcIjsgfVxuXG4ubWRpLWZhc3QtZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxMVwiOyB9XG5cbi5tZGktZmFzdC1mb3J3YXJkLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RDFcIjsgfVxuXG4ubWRpLWZheDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxMlwiOyB9XG5cbi5tZGktZmVhdGhlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZEMlwiOyB9XG5cbi5tZGktZmVycnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMTNcIjsgfVxuXG4ubWRpLWZpbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMTRcIjsgfVxuXG4ubWRpLWZpbGUtYWNjb3VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczQVwiOyB9XG5cbi5tZGktZmlsZS1jaGFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxNVwiOyB9XG5cbi5tZGktZmlsZS1jaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxNlwiOyB9XG5cbi5tZGktZmlsZS1jbG91ZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxN1wiOyB9XG5cbi5tZGktZmlsZS1kZWxpbWl0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMThcIjsgfVxuXG4ubWRpLWZpbGUtZG9jdW1lbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMTlcIjsgfVxuXG4ubWRpLWZpbGUtZG9jdW1lbnQtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjFBXCI7IH1cblxuLm1kaS1maWxlLWV4Y2VsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjFCXCI7IH1cblxuLm1kaS1maWxlLWV4Y2VsLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxQ1wiOyB9XG5cbi5tZGktZmlsZS1leHBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMURcIjsgfVxuXG4ubWRpLWZpbGUtZmluZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIxRVwiOyB9XG5cbi5tZGktZmlsZS1oaWRkZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTNcIjsgfVxuXG4ubWRpLWZpbGUtaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMUZcIjsgfVxuXG4ubWRpLWZpbGUtaW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjIwXCI7IH1cblxuLm1kaS1maWxlLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMjFcIjsgfVxuXG4ubWRpLWZpbGUtbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMjJcIjsgfVxuXG4ubWRpLWZpbGUtbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMjNcIjsgfVxuXG4ubWRpLWZpbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIyNFwiOyB9XG5cbi5tZGktZmlsZS1wZGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMjVcIjsgfVxuXG4ubWRpLWZpbGUtcGRmLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIyNlwiOyB9XG5cbi5tZGktZmlsZS1wZXJjZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODFEXCI7IH1cblxuLm1kaS1maWxlLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NTFcIjsgfVxuXG4ubWRpLWZpbGUtcG93ZXJwb2ludDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIyN1wiOyB9XG5cbi5tZGktZmlsZS1wb3dlcnBvaW50LWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIyOFwiOyB9XG5cbi5tZGktZmlsZS1wcmVzZW50YXRpb24tYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjI5XCI7IH1cblxuLm1kaS1maWxlLXJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NzBcIjsgfVxuXG4ubWRpLWZpbGUtc2VuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIyQVwiOyB9XG5cbi5tZGktZmlsZS10cmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjQ1XCI7IH1cblxuLm1kaS1maWxlLXZpZGVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjJCXCI7IH1cblxuLm1kaS1maWxlLXdvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMkNcIjsgfVxuXG4ubWRpLWZpbGUtd29yZC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMkRcIjsgfVxuXG4ubWRpLWZpbGUteG1sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjJFXCI7IH1cblxuLm1kaS1maWxtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjJGXCI7IH1cblxuLm1kaS1maWxtc3RyaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzBcIjsgfVxuXG4ubWRpLWZpbG1zdHJpcC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzFcIjsgfVxuXG4ubWRpLWZpbHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIzMlwiOyB9XG5cbi5tZGktZmlsdGVyLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzNcIjsgfVxuXG4ubWRpLWZpbHRlci1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzRcIjsgfVxuXG4ubWRpLWZpbHRlci1yZW1vdmUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjIzNVwiOyB9XG5cbi5tZGktZmlsdGVyLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzZcIjsgfVxuXG4ubWRpLWZpbmFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MUVcIjsgfVxuXG4ubWRpLWZpbmQtcmVwbGFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZEM1wiOyB9XG5cbi5tZGktZmluZ2VycHJpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzdcIjsgfVxuXG4ubWRpLWZpcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzhcIjsgfVxuXG4ubWRpLWZpcmVmb3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyMzlcIjsgfVxuXG4ubWRpLWZpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyM0FcIjsgfVxuXG4ubWRpLWZsYWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyM0JcIjsgfVxuXG4ubWRpLWZsYWctY2hlY2tlcmVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjNDXCI7IH1cblxuLm1kaS1mbGFnLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyM0RcIjsgfVxuXG4ubWRpLWZsYWctdHJpYW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyM0ZcIjsgfVxuXG4ubWRpLWZsYWctdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI0MFwiOyB9XG5cbi5tZGktZmxhZy12YXJpYW50LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyM0VcIjsgfVxuXG4ubWRpLWZsYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjQxXCI7IH1cblxuLm1kaS1mbGFzaC1hdXRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjQyXCI7IH1cblxuLm1kaS1mbGFzaC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MUZcIjsgfVxuXG4ubWRpLWZsYXNoLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI0M1wiOyB9XG5cbi5tZGktZmxhc2gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZENFwiOyB9XG5cbi5tZGktZmxhc2gtcmVkLWV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3QVwiOyB9XG5cbi5tZGktZmxhc2hsaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI0NFwiOyB9XG5cbi5tZGktZmxhc2hsaWdodC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNDVcIjsgfVxuXG4ubWRpLWZsYXNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDkzXCI7IH1cblxuLm1kaS1mbGFzay1lbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5NFwiOyB9XG5cbi5tZGktZmxhc2stZW1wdHktb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5NVwiOyB9XG5cbi5tZGktZmxhc2stb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjA5NlwiOyB9XG5cbi5tZGktZmxhdHRyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjQ2XCI7IH1cblxuLm1kaS1mbGlwLXRvLWJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNDdcIjsgfVxuXG4ubWRpLWZsaXAtdG8tZnJvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNDhcIjsgfVxuXG4ubWRpLWZsb29yLXBsYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MjBcIjsgfVxuXG4ubWRpLWZsb3BweTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI0OVwiOyB9XG5cbi5tZGktZmxvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjRBXCI7IH1cblxuLm1kaS1mb2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNEJcIjsgfVxuXG4ubWRpLWZvbGRlci1hY2NvdW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjRDXCI7IH1cblxuLm1kaS1mb2xkZXItZG93bmxvYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNERcIjsgfVxuXG4ubWRpLWZvbGRlci1nb29nbGUtZHJpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNEVcIjsgfVxuXG4ubWRpLWZvbGRlci1pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI0RlwiOyB9XG5cbi5tZGktZm9sZGVyLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNTBcIjsgfVxuXG4ubWRpLWZvbGRlci1sb2NrLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNTFcIjsgfVxuXG4ubWRpLWZvbGRlci1tb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjUyXCI7IH1cblxuLm1kaS1mb2xkZXItbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNTNcIjsgfVxuXG4ubWRpLWZvbGRlci1tdWx0aXBsZS1pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI1NFwiOyB9XG5cbi5tZGktZm9sZGVyLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNTVcIjsgfVxuXG4ubWRpLWZvbGRlci1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzZGXCI7IH1cblxuLm1kaS1mb2xkZXItb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI1NlwiOyB9XG5cbi5tZGktZm9sZGVyLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNTdcIjsgfVxuXG4ubWRpLWZvbGRlci1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNThcIjsgfVxuXG4ubWRpLWZvbGRlci1zdGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjlDXCI7IH1cblxuLm1kaS1mb2xkZXItdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjU5XCI7IH1cblxuLm1kaS1mb250LWF3ZXNvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwM0FcIjsgfVxuXG4ubWRpLWZvb2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNUFcIjsgfVxuXG4ubWRpLWZvb2QtYXBwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNUJcIjsgfVxuXG4ubWRpLWZvb2QtY3JvaXNzYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0M3XCI7IH1cblxuLm1kaS1mb29kLWZvcmstZHJpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RjJcIjsgfVxuXG4ubWRpLWZvb2Qtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUYzXCI7IH1cblxuLm1kaS1mb29kLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNUNcIjsgfVxuXG4ubWRpLWZvb3RiYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjVEXCI7IH1cblxuLm1kaS1mb290YmFsbC1hdXN0cmFsaWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjVFXCI7IH1cblxuLm1kaS1mb290YmFsbC1oZWxtZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNUZcIjsgfVxuXG4ubWRpLWZvcmtsaWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0M4XCI7IH1cblxuLm1kaS1mb3JtYXQtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzUyXCI7IH1cblxuLm1kaS1mb3JtYXQtYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjYwXCI7IH1cblxuLm1kaS1mb3JtYXQtYWxpZ24tanVzdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2MVwiOyB9XG5cbi5tZGktZm9ybWF0LWFsaWduLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNjJcIjsgfVxuXG4ubWRpLWZvcm1hdC1hbGlnbi1taWRkbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NTNcIjsgfVxuXG4ubWRpLWZvcm1hdC1hbGlnbi1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2M1wiOyB9XG5cbi5tZGktZm9ybWF0LWFsaWduLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc1NFwiOyB9XG5cbi5tZGktZm9ybWF0LWFubm90YXRpb24tcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0NlwiOyB9XG5cbi5tZGktZm9ybWF0LWJvbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNjRcIjsgfVxuXG4ubWRpLWZvcm1hdC1jbGVhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2NVwiOyB9XG5cbi5tZGktZm9ybWF0LWNvbG9yLWZpbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNjZcIjsgfVxuXG4ubWRpLWZvcm1hdC1jb2xvci10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjlEXCI7IH1cblxuLm1kaS1mb3JtYXQtZmxvYXQtY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjY3XCI7IH1cblxuLm1kaS1mb3JtYXQtZmxvYXQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2OFwiOyB9XG5cbi5tZGktZm9ybWF0LWZsb2F0LW5vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNjlcIjsgfVxuXG4ubWRpLWZvcm1hdC1mbG9hdC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2QVwiOyB9XG5cbi5tZGktZm9ybWF0LWZvbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RDVcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2QlwiOyB9XG5cbi5tZGktZm9ybWF0LWhlYWRlci0yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjZDXCI7IH1cblxuLm1kaS1mb3JtYXQtaGVhZGVyLTM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNkRcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItNDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI2RVwiOyB9XG5cbi5tZGktZm9ybWF0LWhlYWRlci01OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjZGXCI7IH1cblxuLm1kaS1mb3JtYXQtaGVhZGVyLTY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzBcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItZGVjcmVhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzFcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItZXF1YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzJcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItaW5jcmVhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzNcIjsgfVxuXG4ubWRpLWZvcm1hdC1oZWFkZXItcG91bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzRcIjsgfVxuXG4ubWRpLWZvcm1hdC1ob3Jpem9udGFsLWFsaWduLWNlbnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYxRVwiOyB9XG5cbi5tZGktZm9ybWF0LWhvcml6b250YWwtYWxpZ24tbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYxRlwiOyB9XG5cbi5tZGktZm9ybWF0LWhvcml6b250YWwtYWxpZ24tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MjBcIjsgfVxuXG4ubWRpLWZvcm1hdC1pbmRlbnQtZGVjcmVhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzVcIjsgfVxuXG4ubWRpLWZvcm1hdC1pbmRlbnQtaW5jcmVhc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzZcIjsgfVxuXG4ubWRpLWZvcm1hdC1pdGFsaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzdcIjsgfVxuXG4ubWRpLWZvcm1hdC1saW5lLXNwYWNpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyNzhcIjsgfVxuXG4ubWRpLWZvcm1hdC1saW5lLXN0eWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUM4XCI7IH1cblxuLm1kaS1mb3JtYXQtbGluZS13ZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QzlcIjsgfVxuXG4ubWRpLWZvcm1hdC1saXN0LWJ1bGxldGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjc5XCI7IH1cblxuLm1kaS1mb3JtYXQtbGlzdC1idWxsZXRlZC10eXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjdBXCI7IH1cblxuLm1kaS1mb3JtYXQtbGlzdC1jaGVja3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NTVcIjsgfVxuXG4ubWRpLWZvcm1hdC1saXN0LW51bWJlcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyN0JcIjsgfVxuXG4ubWRpLWZvcm1hdC1wYWdlLWJyZWFrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkQ2XCI7IH1cblxuLm1kaS1mb3JtYXQtcGFpbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyN0NcIjsgfVxuXG4ubWRpLWZvcm1hdC1wYXJhZ3JhcGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyN0RcIjsgfVxuXG4ubWRpLWZvcm1hdC1waWxjcm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkQ3XCI7IH1cblxuLm1kaS1mb3JtYXQtcXVvdGUtY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyN0VcIjsgfVxuXG4ubWRpLWZvcm1hdC1xdW90ZS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzU2XCI7IH1cblxuLm1kaS1mb3JtYXQtcm90YXRlLTkwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkE5XCI7IH1cblxuLm1kaS1mb3JtYXQtc2VjdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY5RVwiOyB9XG5cbi5tZGktZm9ybWF0LXNpemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyN0ZcIjsgfVxuXG4ubWRpLWZvcm1hdC1zdHJpa2V0aHJvdWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjgwXCI7IH1cblxuLm1kaS1mb3JtYXQtc3RyaWtldGhyb3VnaC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjgxXCI7IH1cblxuLm1kaS1mb3JtYXQtc3Vic2NyaXB0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjgyXCI7IH1cblxuLm1kaS1mb3JtYXQtc3VwZXJzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyODNcIjsgfVxuXG4ubWRpLWZvcm1hdC10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjg0XCI7IH1cblxuLm1kaS1mb3JtYXQtdGV4dGRpcmVjdGlvbi1sLXRvLXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyODVcIjsgfVxuXG4ubWRpLWZvcm1hdC10ZXh0ZGlyZWN0aW9uLXItdG8tbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI4NlwiOyB9XG5cbi5tZGktZm9ybWF0LXRpdGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUY0XCI7IH1cblxuLm1kaS1mb3JtYXQtdW5kZXJsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjg3XCI7IH1cblxuLm1kaS1mb3JtYXQtdmVydGljYWwtYWxpZ24tYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjIxXCI7IH1cblxuLm1kaS1mb3JtYXQtdmVydGljYWwtYWxpZ24tY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjIyXCI7IH1cblxuLm1kaS1mb3JtYXQtdmVydGljYWwtYWxpZ24tdG9wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjIzXCI7IH1cblxuLm1kaS1mb3JtYXQtd3JhcC1pbmxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyODhcIjsgfVxuXG4ubWRpLWZvcm1hdC13cmFwLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI4OVwiOyB9XG5cbi5tZGktZm9ybWF0LXdyYXAtdGlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOEFcIjsgfVxuXG4ubWRpLWZvcm1hdC13cmFwLXRvcC1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOEJcIjsgfVxuXG4ubWRpLWZvcnVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjhDXCI7IH1cblxuLm1kaS1mb3J1bS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODIxXCI7IH1cblxuLm1kaS1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjhEXCI7IH1cblxuLm1kaS1mb3Vyc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjhFXCI7IH1cblxuLm1kaS1mcmlkZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOEZcIjsgfVxuXG4ubWRpLWZyaWRnZS1maWxsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOTBcIjsgfVxuXG4ubWRpLWZyaWRnZS1maWxsZWQtYm90dG9tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjkxXCI7IH1cblxuLm1kaS1mcmlkZ2UtZmlsbGVkLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5MlwiOyB9XG5cbi5tZGktZnVlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDOVwiOyB9XG5cbi5tZGktZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5M1wiOyB9XG5cbi5tZGktZnVsbHNjcmVlbi1leGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjk0XCI7IH1cblxuLm1kaS1mdW5jdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5NVwiOyB9XG5cbi5tZGktZ2FtZXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5NlwiOyB9XG5cbi5tZGktZ2FtZXBhZC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjk3XCI7IH1cblxuLm1kaS1nYXJhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RDhcIjsgfVxuXG4ubWRpLWdhcmFnZS1vcGVuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkQ5XCI7IH1cblxuLm1kaS1nYXMtY3lsaW5kZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NDdcIjsgfVxuXG4ubWRpLWdhcy1zdGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjk4XCI7IH1cblxuLm1kaS1nYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjk5XCI7IH1cblxuLm1kaS1nYXVnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5QVwiOyB9XG5cbi5tZGktZ2F2ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOUJcIjsgfVxuXG4ubWRpLWdlbmRlci1mZW1hbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOUNcIjsgfVxuXG4ubWRpLWdlbmRlci1tYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMjlEXCI7IH1cblxuLm1kaS1nZW5kZXItbWFsZS1mZW1hbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyOUVcIjsgfVxuXG4ubWRpLWdlbmRlci10cmFuc2dlbmRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjI5RlwiOyB9XG5cbi5tZGktZ2VzdHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDQVwiOyB9XG5cbi5tZGktZ2VzdHVyZS1kb3VibGUtdGFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzNCXCI7IH1cblxuLm1kaS1nZXN0dXJlLXN3aXBlLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3M0NcIjsgfVxuXG4ubWRpLWdlc3R1cmUtc3dpcGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczRFwiOyB9XG5cbi5tZGktZ2VzdHVyZS1zd2lwZS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczRVwiOyB9XG5cbi5tZGktZ2VzdHVyZS1zd2lwZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjczRlwiOyB9XG5cbi5tZGktZ2VzdHVyZS10YXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NDBcIjsgfVxuXG4ubWRpLWdlc3R1cmUtdHdvLWRvdWJsZS10YXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NDFcIjsgfVxuXG4ubWRpLWdlc3R1cmUtdHdvLXRhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc0MlwiOyB9XG5cbi5tZGktZ2hvc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQTBcIjsgfVxuXG4ubWRpLWdpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQTFcIjsgfVxuXG4ubWRpLWdpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBMlwiOyB9XG5cbi5tZGktZ2l0aHViLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBM1wiOyB9XG5cbi5tZGktZ2l0aHViLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBNFwiOyB9XG5cbi5tZGktZ2l0aHViLWZhY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2REFcIjsgfVxuXG4ubWRpLWdsYXNzLWZsdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkE1XCI7IH1cblxuLm1kaS1nbGFzcy1tdWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQTZcIjsgfVxuXG4ubWRpLWdsYXNzLXN0YW5nZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBN1wiOyB9XG5cbi5tZGktZ2xhc3MtdHVsaXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQThcIjsgfVxuXG4ubWRpLWdsYXNzZG9vcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBOVwiOyB9XG5cbi5tZGktZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJBQVwiOyB9XG5cbi5tZGktZ21haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQUJcIjsgfVxuXG4ubWRpLWdub21lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkFDXCI7IH1cblxuLm1kaS1nb2xmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODIyXCI7IH1cblxuLm1kaS1nb25kb2xhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjg1XCI7IH1cblxuLm1kaS1nb29nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQURcIjsgfVxuXG4ubWRpLWdvb2dsZS1hbmFseXRpY3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3Q0JcIjsgfVxuXG4ubWRpLWdvb2dsZS1hc3Npc3RhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3Q0NcIjsgfVxuXG4ubWRpLWdvb2dsZS1jYXJkYm9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQUVcIjsgfVxuXG4ubWRpLWdvb2dsZS1jaHJvbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQUZcIjsgfVxuXG4ubWRpLWdvb2dsZS1jaXJjbGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkIwXCI7IH1cblxuLm1kaS1nb29nbGUtY2lyY2xlcy1jb21tdW5pdGllczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJCMVwiOyB9XG5cbi5tZGktZ29vZ2xlLWNpcmNsZXMtZXh0ZW5kZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQjJcIjsgfVxuXG4ubWRpLWdvb2dsZS1jaXJjbGVzLWdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkIzXCI7IH1cblxuLm1kaS1nb29nbGUtY29udHJvbGxlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJCNFwiOyB9XG5cbi5tZGktZ29vZ2xlLWNvbnRyb2xsZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkI1XCI7IH1cblxuLm1kaS1nb29nbGUtZHJpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQjZcIjsgfVxuXG4ubWRpLWdvb2dsZS1lYXJ0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJCN1wiOyB9XG5cbi5tZGktZ29vZ2xlLWdsYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkI4XCI7IH1cblxuLm1kaS1nb29nbGUtaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyM1wiOyB9XG5cbi5tZGktZ29vZ2xlLWtlZXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2REJcIjsgfVxuXG4ubWRpLWdvb2dsZS1tYXBzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUY1XCI7IH1cblxuLm1kaS1nb29nbGUtbmVhcmJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkI5XCI7IH1cblxuLm1kaS1nb29nbGUtcGFnZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQkFcIjsgfVxuXG4ubWRpLWdvb2dsZS1waG90b3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RENcIjsgfVxuXG4ubWRpLWdvb2dsZS1waHlzaWNhbC13ZWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQkJcIjsgfVxuXG4ubWRpLWdvb2dsZS1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkJDXCI7IH1cblxuLm1kaS1nb29nbGUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJCRFwiOyB9XG5cbi5tZGktZ29vZ2xlLXBsdXMtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkJFXCI7IH1cblxuLm1kaS1nb29nbGUtdHJhbnNsYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkJGXCI7IH1cblxuLm1kaS1nb29nbGUtd2FsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkMwXCI7IH1cblxuLm1kaS1ncmFkaWVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY5RlwiOyB9XG5cbi5tZGktZ3JlYXNlLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0OFwiOyB9XG5cbi5tZGktZ3JpZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJDMVwiOyB9XG5cbi5tZGktZ3JpZC1sYXJnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc1N1wiOyB9XG5cbi5tZGktZ3JpZC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQzJcIjsgfVxuXG4ubWRpLWdyb3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkMzXCI7IH1cblxuLm1kaS1ndWl0YXItYWNvdXN0aWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NzBcIjsgfVxuXG4ubWRpLWd1aXRhci1lbGVjdHJpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJDNFwiOyB9XG5cbi5tZGktZ3VpdGFyLXBpY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQzVcIjsgfVxuXG4ubWRpLWd1aXRhci1waWNrLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQzZcIjsgfVxuXG4ubWRpLWd1eS1mYXdrZXMtbWFzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyNFwiOyB9XG5cbi5tZGktaGFja2VybmV3czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYyNFwiOyB9XG5cbi5tZGktaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjg0XCI7IH1cblxuLm1kaS1oYW5kLXBvaW50aW5nLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkM3XCI7IH1cblxuLm1kaS1oYW5nZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQzhcIjsgfVxuXG4ubWRpLWhhbmdvdXRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkM5XCI7IH1cblxuLm1kaS1oYXJkZGlzazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJDQVwiOyB9XG5cbi5tZGktaGVhZHBob25lczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJDQlwiOyB9XG5cbi5tZGktaGVhZHBob25lcy1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQ0NcIjsgfVxuXG4ubWRpLWhlYWRwaG9uZXMtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0NEXCI7IH1cblxuLm1kaS1oZWFkcGhvbmVzLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkNEXCI7IH1cblxuLm1kaS1oZWFkc2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkNFXCI7IH1cblxuLm1kaS1oZWFkc2V0LWRvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyQ0ZcIjsgfVxuXG4ubWRpLWhlYWRzZXQtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkQwXCI7IH1cblxuLm1kaS1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJEMVwiOyB9XG5cbi5tZGktaGVhcnQtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkQyXCI7IH1cblxuLm1kaS1oZWFydC1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJEM1wiOyB9XG5cbi5tZGktaGVhcnQtYnJva2VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkQ0XCI7IH1cblxuLm1kaS1oZWFydC1oYWxmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkRFXCI7IH1cblxuLm1kaS1oZWFydC1oYWxmLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RERcIjsgfVxuXG4ubWRpLWhlYXJ0LWhhbGYtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZERlwiOyB9XG5cbi5tZGktaGVhcnQtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzU4XCI7IH1cblxuLm1kaS1oZWFydC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkQ1XCI7IH1cblxuLm1kaS1oZWFydC1wdWxzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVGNlwiOyB9XG5cbi5tZGktaGVscDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJENlwiOyB9XG5cbi5tZGktaGVscC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OEFcIjsgfVxuXG4ubWRpLWhlbHAtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkQ3XCI7IH1cblxuLm1kaS1oZWxwLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjI1XCI7IH1cblxuLm1kaS1oZWxwLW5ldHdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RjRcIjsgfVxuXG4ubWRpLWhleGFnb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRDhcIjsgfVxuXG4ubWRpLWhleGFnb24tbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RTBcIjsgfVxuXG4ubWRpLWhleGFnb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJEOVwiOyB9XG5cbi5tZGktaGlnaC1kZWZpbml0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0NFXCI7IH1cblxuLm1kaS1oaWdod2F5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUY3XCI7IH1cblxuLm1kaS1oaXN0b3J5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkRBXCI7IH1cblxuLm1kaS1ob2xvbGVuczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJEQlwiOyB9XG5cbi5tZGktaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJEQ1wiOyB9XG5cbi5tZGktaG9tZS1hY2NvdW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODI1XCI7IH1cblxuLm1kaS1ob21lLWFzc2lzdGFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdDRlwiOyB9XG5cbi5tZGktaG9tZS1hdXRvbWF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0QwXCI7IH1cblxuLm1kaS1ob21lLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEMVwiOyB9XG5cbi5tZGktaG9tZS1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyNlwiOyB9XG5cbi5tZGktaG9tZS1tYXAtbWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUY4XCI7IH1cblxuLm1kaS1ob21lLW1vZGVybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJERFwiOyB9XG5cbi5tZGktaG9tZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkEwXCI7IH1cblxuLm1kaS1ob21lLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyREVcIjsgfVxuXG4ubWRpLWhvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RTFcIjsgfVxuXG4ubWRpLWhvb2stb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkUyXCI7IH1cblxuLm1kaS1ob3BzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkRGXCI7IH1cblxuLm1kaS1ob3NwaXRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJFMFwiOyB9XG5cbi5tZGktaG9zcGl0YWwtYnVpbGRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRTFcIjsgfVxuXG4ubWRpLWhvc3BpdGFsLW1hcmtlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJFMlwiOyB9XG5cbi5tZGktaG90LXR1YjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyN1wiOyB9XG5cbi5tZGktaG90ZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRTNcIjsgfVxuXG4ubWRpLWhvdXp6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkU0XCI7IH1cblxuLm1kaS1ob3V6ei1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRTVcIjsgfVxuXG4ubWRpLWh1bHU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MjhcIjsgfVxuXG4ubWRpLWh1bWFuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkU2XCI7IH1cblxuLm1kaS1odW1hbi1jaGlsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJFN1wiOyB9XG5cbi5tZGktaHVtYW4tZmVtYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjQ5XCI7IH1cblxuLm1kaS1odW1hbi1ncmVldGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0QVwiOyB9XG5cbi5tZGktaHVtYW4taGFuZHNkb3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjRCXCI7IH1cblxuLm1kaS1odW1hbi1oYW5kc3VwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjRDXCI7IH1cblxuLm1kaS1odW1hbi1tYWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjREXCI7IH1cblxuLm1kaS1odW1hbi1tYWxlLWZlbWFsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJFOFwiOyB9XG5cbi5tZGktaHVtYW4tcHJlZ25hbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1Q0ZcIjsgfVxuXG4ubWRpLWh1bWJsZS1idW5kbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NDNcIjsgfVxuXG4ubWRpLWljZS1jcmVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyOVwiOyB9XG5cbi5tZGktaW1hZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRTlcIjsgfVxuXG4ubWRpLWltYWdlLWFsYnVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkVBXCI7IH1cblxuLm1kaS1pbWFnZS1hcmVhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkVCXCI7IH1cblxuLm1kaS1pbWFnZS1hcmVhLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkVDXCI7IH1cblxuLm1kaS1pbWFnZS1icm9rZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRURcIjsgfVxuXG4ubWRpLWltYWdlLWJyb2tlbi12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkVFXCI7IH1cblxuLm1kaS1pbWFnZS1maWx0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRUZcIjsgfVxuXG4ubWRpLWltYWdlLWZpbHRlci1ibGFjay13aGl0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGMFwiOyB9XG5cbi5tZGktaW1hZ2UtZmlsdGVyLWNlbnRlci1mb2N1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGMVwiOyB9XG5cbi5tZGktaW1hZ2UtZmlsdGVyLWNlbnRlci1mb2N1cy13ZWFrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkYyXCI7IH1cblxuLm1kaS1pbWFnZS1maWx0ZXItZHJhbWE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRjNcIjsgfVxuXG4ubWRpLWltYWdlLWZpbHRlci1mcmFtZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRjRcIjsgfVxuXG4ubWRpLWltYWdlLWZpbHRlci1oZHI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRjVcIjsgfVxuXG4ubWRpLWltYWdlLWZpbHRlci1ub25lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkY2XCI7IH1cblxuLm1kaS1pbWFnZS1maWx0ZXItdGlsdC1zaGlmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGN1wiOyB9XG5cbi5tZGktaW1hZ2UtZmlsdGVyLXZpbnRhZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRjhcIjsgfVxuXG4ubWRpLWltYWdlLW11bHRpcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkY5XCI7IH1cblxuLm1kaS1pbWFnZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MkFcIjsgfVxuXG4ubWRpLWltcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGQVwiOyB9XG5cbi5tZGktaW5ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2ODZcIjsgfVxuXG4ubWRpLWluYm94LWFycm93LWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYyRkJcIjsgfVxuXG4ubWRpLWluYm94LWFycm93LXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0QxXCI7IH1cblxuLm1kaS1pbmNvZ25pdG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RjlcIjsgfVxuXG4ubWRpLWluZmluaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkUzXCI7IH1cblxuLm1kaS1pbmZvcm1hdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGQ1wiOyB9XG5cbi5tZGktaW5mb3JtYXRpb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjJGRFwiOyB9XG5cbi5tZGktaW5mb3JtYXRpb24tdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0RVwiOyB9XG5cbi5tZGktaW5zdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkZFXCI7IH1cblxuLm1kaS1pbnN0YXBhcGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMkZGXCI7IH1cblxuLm1kaS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwMFwiOyB9XG5cbi5tZGktaW52ZXJ0LWNvbG9yczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwMVwiOyB9XG5cbi5tZGktaXR1bmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjc2XCI7IH1cblxuLm1kaS1qZWVwbmV5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzAyXCI7IH1cblxuLm1kaS1qaXJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzAzXCI7IH1cblxuLm1kaS1qc2ZpZGRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwNFwiOyB9XG5cbi5tZGktanNvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYyNlwiOyB9XG5cbi5tZGkta2FyYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODJCXCI7IH1cblxuLm1kaS1rZWc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMDVcIjsgfVxuXG4ubWRpLWtldHRsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVGQVwiOyB9XG5cbi5tZGkta2V5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzA2XCI7IH1cblxuLm1kaS1rZXktY2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzA3XCI7IH1cblxuLm1kaS1rZXktbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMDhcIjsgfVxuXG4ubWRpLWtleS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzA5XCI7IH1cblxuLm1kaS1rZXktcmVtb3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzBBXCI7IH1cblxuLm1kaS1rZXktdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwQlwiOyB9XG5cbi5tZGkta2V5Ym9hcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMENcIjsgfVxuXG4ubWRpLWtleWJvYXJkLWJhY2tzcGFjZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwRFwiOyB9XG5cbi5tZGkta2V5Ym9hcmQtY2FwczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMwRVwiOyB9XG5cbi5tZGkta2V5Ym9hcmQtY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMEZcIjsgfVxuXG4ubWRpLWtleWJvYXJkLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMxMFwiOyB9XG5cbi5tZGkta2V5Ym9hcmQtcmV0dXJuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzExXCI7IH1cblxuLm1kaS1rZXlib2FyZC10YWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMTJcIjsgfVxuXG4ubWRpLWtleWJvYXJkLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMTNcIjsgfVxuXG4ubWRpLWtpY2tzdGFydGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzQ0XCI7IH1cblxuLm1kaS1rb2RpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzE0XCI7IH1cblxuLm1kaS1sYWJlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMxNVwiOyB9XG5cbi5tZGktbGFiZWwtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMxNlwiOyB9XG5cbi5tZGktbGFkeWJ1ZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyQ1wiOyB9XG5cbi5tZGktbGFtYmRhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjI3XCI7IH1cblxuLm1kaS1sYW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkI0XCI7IH1cblxuLm1kaS1sYW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMTdcIjsgfVxuXG4ubWRpLWxhbi1jb25uZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzE4XCI7IH1cblxuLm1kaS1sYW4tZGlzY29ubmVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMxOVwiOyB9XG5cbi5tZGktbGFuLXBlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMUFcIjsgfVxuXG4ubWRpLWxhbmd1YWdlLWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NzFcIjsgfVxuXG4ubWRpLWxhbmd1YWdlLWNwcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3MlwiOyB9XG5cbi5tZGktbGFuZ3VhZ2UtY3NoYXJwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzFCXCI7IH1cblxuLm1kaS1sYW5ndWFnZS1jc3MzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzFDXCI7IH1cblxuLm1kaS1sYW5ndWFnZS1nbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEMlwiOyB9XG5cbi5tZGktbGFuZ3VhZ2UtaHRtbDU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMURcIjsgfVxuXG4ubWRpLWxhbmd1YWdlLWphdmFzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMUVcIjsgfVxuXG4ubWRpLWxhbmd1YWdlLXBocDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMxRlwiOyB9XG5cbi5tZGktbGFuZ3VhZ2UtcHl0aG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzIwXCI7IH1cblxuLm1kaS1sYW5ndWFnZS1weXRob24tdGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMyMVwiOyB9XG5cbi5tZGktbGFuZ3VhZ2UtcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEM1wiOyB9XG5cbi5tZGktbGFuZ3VhZ2Utc3dpZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RTRcIjsgfVxuXG4ubWRpLWxhbmd1YWdlLXR5cGVzY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RTVcIjsgfVxuXG4ubWRpLWxhcHRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMyMlwiOyB9XG5cbi5tZGktbGFwdG9wLWNocm9tZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMjNcIjsgfVxuXG4ubWRpLWxhcHRvcC1tYWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMjRcIjsgfVxuXG4ubWRpLWxhcHRvcC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RTZcIjsgfVxuXG4ubWRpLWxhcHRvcC13aW5kb3dzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzI1XCI7IH1cblxuLm1kaS1sYXN0Zm06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMjZcIjsgfVxuXG4ubWRpLWxhc3RwYXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDQ2XCI7IH1cblxuLm1kaS1sYXVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMjdcIjsgfVxuXG4ubWRpLWxhdmEtbGFtcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdENFwiOyB9XG5cbi5tZGktbGF5ZXJzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzI4XCI7IH1cblxuLm1kaS1sYXllcnMtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzI5XCI7IH1cblxuLm1kaS1sZWFkLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY0RlwiOyB9XG5cbi5tZGktbGVhZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMyQVwiOyB9XG5cbi5tZGktbGVkLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMyQlwiOyB9XG5cbi5tZGktbGVkLW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzJDXCI7IH1cblxuLm1kaS1sZWQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMyRFwiOyB9XG5cbi5tZGktbGVkLXN0cmlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0Q1XCI7IH1cblxuLm1kaS1sZWQtdmFyaWFudC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMkVcIjsgfVxuXG4ubWRpLWxlZC12YXJpYW50LW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzJGXCI7IH1cblxuLm1kaS1sZWQtdmFyaWFudC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzMwXCI7IH1cblxuLm1kaS1saWJyYXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzMxXCI7IH1cblxuLm1kaS1saWJyYXJ5LWJvb2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzMyXCI7IH1cblxuLm1kaS1saWJyYXJ5LW11c2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzMzXCI7IH1cblxuLm1kaS1saWJyYXJ5LXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMzRcIjsgfVxuXG4ubWRpLWxpZ2h0YnVsYjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjMzNVwiOyB9XG5cbi5tZGktbGlnaHRidWxiLW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkU3XCI7IH1cblxuLm1kaS1saWdodGJ1bGItb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFOFwiOyB9XG5cbi5tZGktbGlnaHRidWxiLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMzZcIjsgfVxuXG4ubWRpLWxpbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMzdcIjsgfVxuXG4ubWRpLWxpbmstb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzM4XCI7IH1cblxuLm1kaS1saW5rLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzMzlcIjsgfVxuXG4ubWRpLWxpbmstdmFyaWFudC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzM0FcIjsgfVxuXG4ubWRpLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzNCXCI7IH1cblxuLm1kaS1saW5rZWRpbi1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzM0NcIjsgfVxuXG4ubWRpLWxpbnV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzNEXCI7IH1cblxuLm1kaS1sb2FkaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzcxXCI7IH1cblxuLm1kaS1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzNFXCI7IH1cblxuLm1kaS1sb2NrLW9wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzM0ZcIjsgfVxuXG4ubWRpLWxvY2stb3Blbi1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzQwXCI7IH1cblxuLm1kaS1sb2NrLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNDFcIjsgfVxuXG4ubWRpLWxvY2stcGF0dGVybjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFOVwiOyB9XG5cbi5tZGktbG9jay1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUZCXCI7IH1cblxuLm1kaS1sb2NrLXJlc2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzcyXCI7IH1cblxuLm1kaS1sb2NrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RDZcIjsgfVxuXG4ubWRpLWxvY2tlci1tdWx0aXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEN1wiOyB9XG5cbi5tZGktbG9naW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNDJcIjsgfVxuXG4ubWRpLWxvZ2luLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RkNcIjsgfVxuXG4ubWRpLWxvZ291dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM0M1wiOyB9XG5cbi5tZGktbG9nb3V0LXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RkRcIjsgfVxuXG4ubWRpLWxvb2tzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzQ0XCI7IH1cblxuLm1kaS1sb29wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkVBXCI7IH1cblxuLm1kaS1sb3VwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM0NVwiOyB9XG5cbi5tZGktbHVteDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM0NlwiOyB9XG5cbi5tZGktbWFnbmV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzQ3XCI7IH1cblxuLm1kaS1tYWduZXQtb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNDhcIjsgfVxuXG4ubWRpLW1hZ25pZnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNDlcIjsgfVxuXG4ubWRpLW1hZ25pZnktbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNEFcIjsgfVxuXG4ubWRpLW1hZ25pZnktbWludXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFQlwiOyB9XG5cbi5tZGktbWFnbmlmeS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzRCXCI7IH1cblxuLm1kaS1tYWduaWZ5LXBsdXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFQ1wiOyB9XG5cbi5tZGktbWFpbC1ydTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM0Q1wiOyB9XG5cbi5tZGktbWFpbGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFRFwiOyB9XG5cbi5tZGktbWFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzREXCI7IH1cblxuLm1kaS1tYXAtbWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzRFXCI7IH1cblxuLm1kaS1tYXAtbWFya2VyLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM0RlwiOyB9XG5cbi5tZGktbWFwLW1hcmtlci1taW51czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY1MFwiOyB9XG5cbi5tZGktbWFwLW1hcmtlci1tdWx0aXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1MFwiOyB9XG5cbi5tZGktbWFwLW1hcmtlci1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNTFcIjsgfVxuXG4ubWRpLW1hcC1tYXJrZXItb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEOFwiOyB9XG5cbi5tZGktbWFwLW1hcmtlci1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjUxXCI7IH1cblxuLm1kaS1tYXAtbWFya2VyLXJhZGl1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1MlwiOyB9XG5cbi5tZGktbWFyZ2luOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzUzXCI7IH1cblxuLm1kaS1tYXJrZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1NFwiOyB9XG5cbi5tZGktbWFya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjUyXCI7IH1cblxuLm1kaS1tYXJrZXItY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNTVcIjsgfVxuXG4ubWRpLW1hcnRpbmk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNTZcIjsgfVxuXG4ubWRpLW1hdGVyaWFsLXVpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzU3XCI7IH1cblxuLm1kaS1tYXRoLWNvbXBhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNThcIjsgfVxuXG4ubWRpLW1hdHJpeDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYyOFwiOyB9XG5cbi5tZGktbWF4Y2RuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzU5XCI7IH1cblxuLm1kaS1tZWRpY2FsLWJhZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZFRVwiOyB9XG5cbi5tZGktbWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzVBXCI7IH1cblxuLm1kaS1tZW1vcnk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNUJcIjsgfVxuXG4ubWRpLW1lbnU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNUNcIjsgfVxuXG4ubWRpLW1lbnUtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1RFwiOyB9XG5cbi5tZGktbWVudS1kb3duLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QjVcIjsgfVxuXG4ubWRpLW1lbnUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1RVwiOyB9XG5cbi5tZGktbWVudS1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM1RlwiOyB9XG5cbi5tZGktbWVudS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2MFwiOyB9XG5cbi5tZGktbWVudS11cC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkI2XCI7IH1cblxuLm1kaS1tZXNzYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzYxXCI7IH1cblxuLm1kaS1tZXNzYWdlLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzYyXCI7IH1cblxuLm1kaS1tZXNzYWdlLWJ1bGxldGVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkExXCI7IH1cblxuLm1kaS1tZXNzYWdlLWJ1bGxldGVkLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZBMlwiOyB9XG5cbi5tZGktbWVzc2FnZS1kcmF3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzYzXCI7IH1cblxuLm1kaS1tZXNzYWdlLWltYWdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzY0XCI7IH1cblxuLm1kaS1tZXNzYWdlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNjVcIjsgfVxuXG4ubWRpLW1lc3NhZ2UtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY1M1wiOyB9XG5cbi5tZGktbWVzc2FnZS1wcm9jZXNzaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzY2XCI7IH1cblxuLm1kaS1tZXNzYWdlLXJlcGx5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzY3XCI7IH1cblxuLm1kaS1tZXNzYWdlLXJlcGx5LXRleHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNjhcIjsgfVxuXG4ubWRpLW1lc3NhZ2Utc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RUZcIjsgfVxuXG4ubWRpLW1lc3NhZ2Utc2V0dGluZ3MtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZGMFwiOyB9XG5cbi5tZGktbWVzc2FnZS10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzY5XCI7IH1cblxuLm1kaS1tZXNzYWdlLXRleHQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2QVwiOyB9XG5cbi5tZGktbWVzc2FnZS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2QlwiOyB9XG5cbi5tZGktbWV0ZW9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjI5XCI7IH1cblxuLm1kaS1tZXRyb25vbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RDlcIjsgfVxuXG4ubWRpLW1ldHJvbm9tZS10aWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0RBXCI7IH1cblxuLm1kaS1taWNyby1zZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEQlwiOyB9XG5cbi5tZGktbWljcm9waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2Q1wiOyB9XG5cbi5tZGktbWljcm9waG9uZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNkRcIjsgfVxuXG4ubWRpLW1pY3JvcGhvbmUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2RVwiOyB9XG5cbi5tZGktbWljcm9waG9uZS1zZXR0aW5nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM2RlwiOyB9XG5cbi5tZGktbWljcm9waG9uZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzcwXCI7IH1cblxuLm1kaS1taWNyb3Bob25lLXZhcmlhbnQtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzcxXCI7IH1cblxuLm1kaS1taWNyb3Njb3BlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjU0XCI7IH1cblxuLm1kaS1taWNyb3NvZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNzJcIjsgfVxuXG4ubWRpLW1pbmVjcmFmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3M1wiOyB9XG5cbi5tZGktbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNzRcIjsgfVxuXG4ubWRpLW1pbnVzLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3NVwiOyB9XG5cbi5tZGktbWludXMtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RjFcIjsgfVxuXG4ubWRpLW1pbnVzLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3NlwiOyB9XG5cbi5tZGktbWludXMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNzdcIjsgfVxuXG4ubWRpLW1pbnVzLW5ldHdvcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzNzhcIjsgfVxuXG4ubWRpLW1peGNsb3VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjJBXCI7IH1cblxuLm1kaS1taXhlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdEQ1wiOyB9XG5cbi5tZGktbW9uaXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3OVwiOyB9XG5cbi5tZGktbW9uaXRvci1tdWx0aXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3QVwiOyB9XG5cbi5tZGktbW9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3QlwiOyB9XG5cbi5tZGktbW90b3JiaWtlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzdDXCI7IH1cblxuLm1kaS1tb3VzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM3RFwiOyB9XG5cbi5tZGktbW91c2Utb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzdFXCI7IH1cblxuLm1kaS1tb3VzZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzdGXCI7IH1cblxuLm1kaS1tb3VzZS12YXJpYW50LW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4MFwiOyB9XG5cbi5tZGktbW92ZS1yZXNpemU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NTVcIjsgfVxuXG4ubWRpLW1vdmUtcmVzaXplLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NTZcIjsgfVxuXG4ubWRpLW1vdmllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzgxXCI7IH1cblxuLm1kaS1tb3ZpZS1yb2xsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0REXCI7IH1cblxuLm1kaS1tdWx0aXBsaWNhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4MlwiOyB9XG5cbi5tZGktbXVsdGlwbGljYXRpb24tYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzgzXCI7IH1cblxuLm1kaS1tdXNocm9vbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdERVwiOyB9XG5cbi5tZGktbXVzaHJvb20tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdERlwiOyB9XG5cbi5tZGktbXVzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NTlcIjsgfVxuXG4ubWRpLW11c2ljLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4NFwiOyB9XG5cbi5tZGktbXVzaWMtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzODVcIjsgfVxuXG4ubWRpLW11c2ljLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4NlwiOyB9XG5cbi5tZGktbXVzaWMtbm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4N1wiOyB9XG5cbi5tZGktbXVzaWMtbm90ZS1ibHVldG9vdGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RkVcIjsgfVxuXG4ubWRpLW11c2ljLW5vdGUtYmx1ZXRvb3RoLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVGRlwiOyB9XG5cbi5tZGktbXVzaWMtbm90ZS1laWdodGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzODhcIjsgfVxuXG4ubWRpLW11c2ljLW5vdGUtaGFsZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4OVwiOyB9XG5cbi5tZGktbXVzaWMtbm90ZS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOEFcIjsgfVxuXG4ubWRpLW11c2ljLW5vdGUtcXVhcnRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM4QlwiOyB9XG5cbi5tZGktbXVzaWMtbm90ZS1zaXh0ZWVudGg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOENcIjsgfVxuXG4ubWRpLW11c2ljLW5vdGUtd2hvbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOERcIjsgfVxuXG4ubWRpLW11c2ljLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc1QVwiOyB9XG5cbi5tZGktbmF0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzhFXCI7IH1cblxuLm1kaS1uYXR1cmUtcGVvcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzhGXCI7IH1cblxuLm1kaS1uYXZpZ2F0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzkwXCI7IH1cblxuLm1kaS1uZWFyLW1lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUNEXCI7IH1cblxuLm1kaS1uZWVkbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOTFcIjsgfVxuXG4ubWRpLW5lc3QtcHJvdGVjdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5MlwiOyB9XG5cbi5tZGktbmVzdC10aGVybW9zdGF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzkzXCI7IH1cblxuLm1kaS1uZXRmbGl4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzQ1XCI7IH1cblxuLm1kaS1uZXR3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkYyXCI7IH1cblxuLm1kaS1uZXctYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMzk0XCI7IH1cblxuLm1kaS1uZXdzcGFwZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOTVcIjsgfVxuXG4ubWRpLW5mYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5NlwiOyB9XG5cbi5tZGktbmZjLXRhcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5N1wiOyB9XG5cbi5tZGktbmZjLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOThcIjsgfVxuXG4ubWRpLW5pbmphOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzczXCI7IH1cblxuLm1kaS1uaW50ZW5kby1zd2l0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RTBcIjsgfVxuXG4ubWRpLW5vZGVqczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5OVwiOyB9XG5cbi5tZGktbm90ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5QVwiOyB9XG5cbi5tZGktbm90ZS1tdWx0aXBsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZCN1wiOyB9XG5cbi5tZGktbm90ZS1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkI4XCI7IH1cblxuLm1kaS1ub3RlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOUJcIjsgfVxuXG4ubWRpLW5vdGUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5Q1wiOyB9XG5cbi5tZGktbm90ZS1wbHVzLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOURcIjsgfVxuXG4ubWRpLW5vdGUtdGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjM5RVwiOyB9XG5cbi5tZGktbm90ZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MkRcIjsgfVxuXG4ubWRpLW5vdGlmaWNhdGlvbi1jbGVhci1hbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzOUZcIjsgfVxuXG4ubWRpLW5wbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZGNlwiOyB9XG5cbi5tZGktbnVrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZBM1wiOyB9XG5cbi5tZGktbnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFMVwiOyB9XG5cbi5tZGktbnVtZXJpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBMFwiOyB9XG5cbi5tZGktbnVtZXJpYy0wLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBMVwiOyB9XG5cbi5tZGktbnVtZXJpYy0wLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0EyXCI7IH1cblxuLm1kaS1udW1lcmljLTAtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQTNcIjsgfVxuXG4ubWRpLW51bWVyaWMtMS1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQTRcIjsgfVxuXG4ubWRpLW51bWVyaWMtMS1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBNVwiOyB9XG5cbi5tZGktbnVtZXJpYy0xLWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0E2XCI7IH1cblxuLm1kaS1udW1lcmljLTItYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0E3XCI7IH1cblxuLm1kaS1udW1lcmljLTItYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQThcIjsgfVxuXG4ubWRpLW51bWVyaWMtMi1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBOVwiOyB9XG5cbi5tZGktbnVtZXJpYy0zLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBQVwiOyB9XG5cbi5tZGktbnVtZXJpYy0zLWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0FCXCI7IH1cblxuLm1kaS1udW1lcmljLTMtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQUNcIjsgfVxuXG4ubWRpLW51bWVyaWMtNC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQURcIjsgfVxuXG4ubWRpLW51bWVyaWMtNC1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNBRVwiOyB9XG5cbi5tZGktbnVtZXJpYy00LWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0FGXCI7IH1cblxuLm1kaS1udW1lcmljLTUtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0IwXCI7IH1cblxuLm1kaS1udW1lcmljLTUtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQjFcIjsgfVxuXG4ubWRpLW51bWVyaWMtNS1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCMlwiOyB9XG5cbi5tZGktbnVtZXJpYy02LWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCM1wiOyB9XG5cbi5tZGktbnVtZXJpYy02LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0I0XCI7IH1cblxuLm1kaS1udW1lcmljLTYtYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQjVcIjsgfVxuXG4ubWRpLW51bWVyaWMtNy1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQjZcIjsgfVxuXG4ubWRpLW51bWVyaWMtNy1ib3gtbXVsdGlwbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCN1wiOyB9XG5cbi5tZGktbnVtZXJpYy03LWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0I4XCI7IH1cblxuLm1kaS1udW1lcmljLTgtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0I5XCI7IH1cblxuLm1kaS1udW1lcmljLTgtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQkFcIjsgfVxuXG4ubWRpLW51bWVyaWMtOC1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCQlwiOyB9XG5cbi5tZGktbnVtZXJpYy05LWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCQ1wiOyB9XG5cbi5tZGktbnVtZXJpYy05LWJveC1tdWx0aXBsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0JEXCI7IH1cblxuLm1kaS1udW1lcmljLTktYm94LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQkVcIjsgfVxuXG4ubWRpLW51bWVyaWMtOS1wbHVzLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNCRlwiOyB9XG5cbi5tZGktbnVtZXJpYy05LXBsdXMtYm94LW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQzBcIjsgfVxuXG4ubWRpLW51bWVyaWMtOS1wbHVzLWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0MxXCI7IH1cblxuLm1kaS1udXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RjdcIjsgfVxuXG4ubWRpLW51dHJpdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNDMlwiOyB9XG5cbi5tZGktb2FyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjdCXCI7IH1cblxuLm1kaS1vY3RhZ29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0MzXCI7IH1cblxuLm1kaS1vY3RhZ29uLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQzRcIjsgfVxuXG4ubWRpLW9jdGFncmFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkY4XCI7IH1cblxuLm1kaS1vY3RhZ3JhbS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzc0XCI7IH1cblxuLm1kaS1vZG5va2xhc3NuaWtpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0M1XCI7IH1cblxuLm1kaS1vZmZpY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQzZcIjsgfVxuXG4ubWRpLW9pbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNDN1wiOyB9XG5cbi5tZGktb2lsLXRlbXBlcmF0dXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0M4XCI7IH1cblxuLm1kaS1vbWVnYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNDOVwiOyB9XG5cbi5tZGktb25lZHJpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzQ0FcIjsgfVxuXG4ubWRpLW9uZW5vdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NDZcIjsgfVxuXG4ubWRpLW9wYWNpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1Q0NcIjsgfVxuXG4ubWRpLW9wZW4taW4tYXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0NCXCI7IH1cblxuLm1kaS1vcGVuLWluLW5ldzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNDQ1wiOyB9XG5cbi5tZGktb3BlbmlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0NEXCI7IH1cblxuLm1kaS1vcGVyYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNDRVwiOyB9XG5cbi5tZGktb3JiaXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYwMThcIjsgfVxuXG4ubWRpLW9ybmFtZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0NGXCI7IH1cblxuLm1kaS1vcm5hbWVudC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0QwXCI7IH1cblxuLm1kaS1vd2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRDJcIjsgfVxuXG4ubWRpLXBhY2thZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRDNcIjsgfVxuXG4ubWRpLXBhY2thZ2UtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNENFwiOyB9XG5cbi5tZGktcGFja2FnZS11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNENVwiOyB9XG5cbi5tZGktcGFja2FnZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0Q2XCI7IH1cblxuLm1kaS1wYWNrYWdlLXZhcmlhbnQtY2xvc2VkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0Q3XCI7IH1cblxuLm1kaS1wYWdlLWZpcnN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjAwXCI7IH1cblxuLm1kaS1wYWdlLWxhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MDFcIjsgfVxuXG4ubWRpLXBhZ2UtbGF5b3V0LWJvZHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RjlcIjsgfVxuXG4ubWRpLXBhZ2UtbGF5b3V0LWZvb3RlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZGQVwiOyB9XG5cbi5tZGktcGFnZS1sYXlvdXQtaGVhZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkZCXCI7IH1cblxuLm1kaS1wYWdlLWxheW91dC1zaWRlYmFyLWxlZnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RkNcIjsgfVxuXG4ubWRpLXBhZ2UtbGF5b3V0LXNpZGViYXItcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2RkRcIjsgfVxuXG4ubWRpLXBhbGV0dGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRDhcIjsgfVxuXG4ubWRpLXBhbGV0dGUtYWR2YW5jZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRDlcIjsgfVxuXG4ubWRpLXBhbmRhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0RBXCI7IH1cblxuLm1kaS1wYW5kb3JhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0RCXCI7IH1cblxuLm1kaS1wYW5vcmFtYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNEQ1wiOyB9XG5cbi5tZGktcGFub3JhbWEtZmlzaGV5ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNERFwiOyB9XG5cbi5tZGktcGFub3JhbWEtaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNERVwiOyB9XG5cbi5tZGktcGFub3JhbWEtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzREZcIjsgfVxuXG4ubWRpLXBhbm9yYW1hLXdpZGUtYW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRTBcIjsgfVxuXG4ubWRpLXBhcGVyLWN1dC12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNFMVwiOyB9XG5cbi5tZGktcGFwZXJjbGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0UyXCI7IH1cblxuLm1kaS1wYXJraW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0UzXCI7IH1cblxuLm1kaS1wYXNzcG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFMlwiOyB9XG5cbi5tZGktcGF1c2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRTRcIjsgfVxuXG4ubWRpLXBhdXNlLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNFNVwiOyB9XG5cbi5tZGktcGF1c2UtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRTZcIjsgfVxuXG4ubWRpLXBhdXNlLW9jdGFnb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRTdcIjsgfVxuXG4ubWRpLXBhdXNlLW9jdGFnb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNFOFwiOyB9XG5cbi5tZGktcGF3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0U5XCI7IH1cblxuLm1kaS1wYXctb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjU3XCI7IH1cblxuLm1kaS1wZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRUFcIjsgfVxuXG4ubWRpLXBlbmNpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNFQlwiOyB9XG5cbi5tZGktcGVuY2lsLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNFQ1wiOyB9XG5cbi5tZGktcGVuY2lsLWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0VEXCI7IH1cblxuLm1kaS1wZW5jaWwtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkZFXCI7IH1cblxuLm1kaS1wZW5jaWwtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NzVcIjsgfVxuXG4ubWRpLXBlbmNpbC1sb2NrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0VFXCI7IH1cblxuLm1kaS1wZW5jaWwtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0VGXCI7IH1cblxuLm1kaS1wZW50YWdvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZGRlwiOyB9XG5cbi5tZGktcGVudGFnb24tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwMFwiOyB9XG5cbi5tZGktcGVyY2VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGMFwiOyB9XG5cbi5tZGktcGVyaW9kaWMtdGFibGUtY28yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0UzXCI7IH1cblxuLm1kaS1wZXJpc2NvcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NDdcIjsgfVxuXG4ubWRpLXBoYXJtYWN5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0YxXCI7IH1cblxuLm1kaS1waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGMlwiOyB9XG5cbi5tZGktcGhvbmUtYmx1ZXRvb3RoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0YzXCI7IH1cblxuLm1kaS1waG9uZS1jbGFzc2ljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjAyXCI7IH1cblxuLm1kaS1waG9uZS1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0Y0XCI7IH1cblxuLm1kaS1waG9uZS1oYW5ndXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRjVcIjsgfVxuXG4ubWRpLXBob25lLWluLXRhbGs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRjZcIjsgfVxuXG4ubWRpLXBob25lLWluY29taW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGM0Y3XCI7IH1cblxuLm1kaS1waG9uZS1sb2NrZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRjhcIjsgfVxuXG4ubWRpLXBob25lLWxvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGOVwiOyB9XG5cbi5tZGktcGhvbmUtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NThcIjsgfVxuXG4ubWRpLXBob25lLW1pc3NlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGQVwiOyB9XG5cbi5tZGktcGhvbmUtb3V0Z29pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRkJcIjsgfVxuXG4ubWRpLXBob25lLXBhdXNlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGQ1wiOyB9XG5cbi5tZGktcGhvbmUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY1OVwiOyB9XG5cbi5tZGktcGhvbmUtcmV0dXJuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODJFXCI7IH1cblxuLm1kaS1waG9uZS1zZXR0aW5nczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGRFwiOyB9XG5cbi5tZGktcGhvbmUtdm9pcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjNGRVwiOyB9XG5cbi5tZGktcGk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEYzRkZcIjsgfVxuXG4ubWRpLXBpLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwMFwiOyB9XG5cbi5tZGktcGlhbm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2N0NcIjsgfVxuXG4ubWRpLXBpZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwMVwiOyB9XG5cbi5tZGktcGlsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwMlwiOyB9XG5cbi5tZGktcGlsbGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzAxXCI7IH1cblxuLm1kaS1waW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MDNcIjsgfVxuXG4ubWRpLXBpbi1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MDRcIjsgfVxuXG4ubWRpLXBpbmUtdHJlZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwNVwiOyB9XG5cbi5tZGktcGluZS10cmVlLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwNlwiOyB9XG5cbi5tZGktcGludGVyZXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDA3XCI7IH1cblxuLm1kaS1waW50ZXJlc3QtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDA4XCI7IH1cblxuLm1kaS1waXBlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0U0XCI7IH1cblxuLm1kaS1waXBlLWRpc2Nvbm5lY3RlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFNVwiOyB9XG5cbi5tZGktcGlzdG9sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzAyXCI7IH1cblxuLm1kaS1waXp6YTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwOVwiOyB9XG5cbi5tZGktcGxhbmUtc2hpZWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkJBXCI7IH1cblxuLm1kaS1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDBBXCI7IH1cblxuLm1kaS1wbGF5LWJveC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDBCXCI7IH1cblxuLm1kaS1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwQ1wiOyB9XG5cbi5tZGktcGxheS1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwRFwiOyB9XG5cbi5tZGktcGxheS1wYXVzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwRVwiOyB9XG5cbi5tZGktcGxheS1wcm90ZWN0ZWQtY29udGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQwRlwiOyB9XG5cbi5tZGktcGxheWxpc3QtY2hlY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QzdcIjsgfVxuXG4ubWRpLXBsYXlsaXN0LW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDEwXCI7IH1cblxuLm1kaS1wbGF5bGlzdC1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDExXCI7IH1cblxuLm1kaS1wbGF5bGlzdC1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDEyXCI7IH1cblxuLm1kaS1wbGF5bGlzdC1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MTNcIjsgfVxuXG4ubWRpLXBsYXlzdGF0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDE0XCI7IH1cblxuLm1kaS1wbGV4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkI5XCI7IH1cblxuLm1kaS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDE1XCI7IH1cblxuLm1kaS1wbHVzLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQxNlwiOyB9XG5cbi5tZGktcGx1cy1ib3gtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwM1wiOyB9XG5cbi5tZGktcGx1cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MTdcIjsgfVxuXG4ubWRpLXBsdXMtY2lyY2xlLW11bHRpcGxlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MThcIjsgfVxuXG4ubWRpLXBsdXMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MTlcIjsgfVxuXG4ubWRpLXBsdXMtbmV0d29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQxQVwiOyB9XG5cbi5tZGktcGx1cy1vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MUJcIjsgfVxuXG4ubWRpLXBsdXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwNFwiOyB9XG5cbi5tZGktcG9ja2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDFDXCI7IH1cblxuLm1kaS1wb2tlYmFsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQxRFwiOyB9XG5cbi5tZGktcG9rZXItY2hpcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgyRlwiOyB9XG5cbi5tZGktcG9sYXJvaWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MUVcIjsgfVxuXG4ubWRpLXBvbGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MUZcIjsgfVxuXG4ubWRpLXBvbGwtYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDIwXCI7IH1cblxuLm1kaS1wb2x5bWVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDIxXCI7IH1cblxuLm1kaS1wb29sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjA2XCI7IH1cblxuLm1kaS1wb3Bjb3JuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDIyXCI7IH1cblxuLm1kaS1wb3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NUFcIjsgfVxuXG4ubWRpLXBvdC1taXg6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NUJcIjsgfVxuXG4ubWRpLXBvdW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDIzXCI7IH1cblxuLm1kaS1wb3VuZC1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MjRcIjsgfVxuXG4ubWRpLXBvd2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDI1XCI7IH1cblxuLm1kaS1wb3dlci1wbHVnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkE0XCI7IH1cblxuLm1kaS1wb3dlci1wbHVnLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZBNVwiOyB9XG5cbi5tZGktcG93ZXItc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MjZcIjsgfVxuXG4ubWRpLXBvd2VyLXNvY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQyN1wiOyB9XG5cbi5tZGktcG93ZXItc29ja2V0LWV1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0U2XCI7IH1cblxuLm1kaS1wb3dlci1zb2NrZXQtdWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RTdcIjsgfVxuXG4ubWRpLXBvd2VyLXNvY2tldC11czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFOFwiOyB9XG5cbi5tZGktcHJlc2NyaXB0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzA1XCI7IH1cblxuLm1kaS1wcmVzZW50YXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MjhcIjsgfVxuXG4ubWRpLXByZXNlbnRhdGlvbi1wbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDI5XCI7IH1cblxuLm1kaS1wcmludGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDJBXCI7IH1cblxuLm1kaS1wcmludGVyLTNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDJCXCI7IH1cblxuLm1kaS1wcmludGVyLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDJDXCI7IH1cblxuLm1kaS1wcmludGVyLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzA2XCI7IH1cblxuLm1kaS1wcmlvcml0eS1oaWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjAzXCI7IH1cblxuLm1kaS1wcmlvcml0eS1sb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MDRcIjsgfVxuXG4ubWRpLXByb2Zlc3Npb25hbC1oZXhhZ29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDJEXCI7IH1cblxuLm1kaS1wcm9qZWN0b3I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MkVcIjsgfVxuXG4ubWRpLXByb2plY3Rvci1zY3JlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MkZcIjsgfVxuXG4ubWRpLXB1Ymxpc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QTZcIjsgfVxuXG4ubWRpLXB1bHNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDMwXCI7IH1cblxuLm1kaS1wdXp6bGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MzFcIjsgfVxuXG4ubWRpLXFxY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYwNVwiOyB9XG5cbi5tZGktcXJjb2RlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDMyXCI7IH1cblxuLm1kaS1xcmNvZGUtc2NhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQzM1wiOyB9XG5cbi5tZGktcXVhZGNvcHRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQzNFwiOyB9XG5cbi5tZGktcXVhbGl0eS1oaWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDM1XCI7IH1cblxuLm1kaS1xdWlja3RpbWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MzZcIjsgfVxuXG4ubWRpLXJhZGFyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDM3XCI7IH1cblxuLm1kaS1yYWRpYXRvcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQzOFwiOyB9XG5cbi5tZGktcmFkaW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0MzlcIjsgfVxuXG4ubWRpLXJhZGlvLWhhbmRoZWxkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDNBXCI7IH1cblxuLm1kaS1yYWRpby10b3dlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQzQlwiOyB9XG5cbi5tZGktcmFkaW9hY3RpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0M0NcIjsgfVxuXG4ubWRpLXJhZGlvYm94LWJsYW5rOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDNEXCI7IH1cblxuLm1kaS1yYWRpb2JveC1tYXJrZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0M0VcIjsgfVxuXG4ubWRpLXJhc3BiZXJyeXBpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDNGXCI7IH1cblxuLm1kaS1yYXktZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDQwXCI7IH1cblxuLm1kaS1yYXktZW5kLWFycm93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDQxXCI7IH1cblxuLm1kaS1yYXktc3RhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NDJcIjsgfVxuXG4ubWRpLXJheS1zdGFydC1hcnJvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0M1wiOyB9XG5cbi5tZGktcmF5LXN0YXJ0LWVuZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0NFwiOyB9XG5cbi5tZGktcmF5LXZlcnRleDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0NVwiOyB9XG5cbi5tZGktcmVhY3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MDdcIjsgfVxuXG4ubWRpLXJlYWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NDdcIjsgfVxuXG4ubWRpLXJlY2VpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NDlcIjsgfVxuXG4ubWRpLXJlY29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0QVwiOyB9XG5cbi5tZGktcmVjb3JkLXJlYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0QlwiOyB9XG5cbi5tZGktcmVjeWNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0Q1wiOyB9XG5cbi5tZGktcmVkZGl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDREXCI7IH1cblxuLm1kaS1yZWRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDRFXCI7IH1cblxuLm1kaS1yZWRvLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NEZcIjsgfVxuXG4ubWRpLXJlZnJlc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NTBcIjsgfVxuXG4ubWRpLXJlZ2V4OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDUxXCI7IH1cblxuLm1kaS1yZWxhdGl2ZS1zY2FsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ1MlwiOyB9XG5cbi5tZGktcmVsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDUzXCI7IH1cblxuLm1kaS1yZW1vdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NTRcIjsgfVxuXG4ubWRpLXJlbmFtZS1ib3g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NTVcIjsgfVxuXG4ubWRpLXJlb3JkZXItaG9yaXpvbnRhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4N1wiOyB9XG5cbi5tZGktcmVvcmRlci12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4OFwiOyB9XG5cbi5tZGktcmVwZWF0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDU2XCI7IH1cblxuLm1kaS1yZXBlYXQtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDU3XCI7IH1cblxuLm1kaS1yZXBlYXQtb25jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ1OFwiOyB9XG5cbi5tZGktcmVwbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDU5XCI7IH1cblxuLm1kaS1yZXBseTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ1QVwiOyB9XG5cbi5tZGktcmVwbHktYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDVCXCI7IH1cblxuLm1kaS1yZXByb2R1Y3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NUNcIjsgfVxuXG4ubWRpLXJlc2l6ZS1ib3R0b20tcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NURcIjsgfVxuXG4ubWRpLXJlc3BvbnNpdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NUVcIjsgfVxuXG4ubWRpLXJlc3RhcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MDhcIjsgfVxuXG4ubWRpLXJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QTdcIjsgfVxuXG4ubWRpLXJld2luZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ1RlwiOyB9XG5cbi5tZGktcmV3aW5kLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MDlcIjsgfVxuXG4ubWRpLXJob21idXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MEFcIjsgfVxuXG4ubWRpLXJob21idXMtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwQlwiOyB9XG5cbi5tZGktcmliYm9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDYwXCI7IH1cblxuLm1kaS1yaWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0U5XCI7IH1cblxuLm1kaS1yaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0VBXCI7IH1cblxuLm1kaS1yb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDYxXCI7IH1cblxuLm1kaS1yb2FkLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NjJcIjsgfVxuXG4ubWRpLXJvYm90OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkE4XCI7IH1cblxuLm1kaS1yb2NrZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NjNcIjsgfVxuXG4ubWRpLXJvb21iYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwQ1wiOyB9XG5cbi5tZGktcm90YXRlLTNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDY0XCI7IH1cblxuLm1kaS1yb3RhdGUtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2NVwiOyB9XG5cbi5tZGktcm90YXRlLWxlZnQtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2NlwiOyB9XG5cbi5tZGktcm90YXRlLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDY3XCI7IH1cblxuLm1kaS1yb3RhdGUtcmlnaHQtdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2OFwiOyB9XG5cbi5tZGktcm91bmRlZC1jb3JuZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MDdcIjsgfVxuXG4ubWRpLXJvdXRlci13aXJlbGVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2OVwiOyB9XG5cbi5tZGktcm91dGVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDZBXCI7IH1cblxuLm1kaS1yb3dpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MDhcIjsgfVxuXG4ubWRpLXJzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2QlwiOyB9XG5cbi5tZGktcnNzLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ2Q1wiOyB9XG5cbi5tZGktcnVsZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NkRcIjsgfVxuXG4ubWRpLXJ1bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcwRFwiOyB9XG5cbi5tZGktcnVuLWZhc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NkVcIjsgfVxuXG4ubWRpLXNhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NkZcIjsgfVxuXG4ubWRpLXNhc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RUJcIjsgfVxuXG4ubWRpLXNhdGVsbGl0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ3MFwiOyB9XG5cbi5tZGktc2F0ZWxsaXRlLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NzFcIjsgfVxuXG4ubWRpLXNheG9waG9uZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYwOVwiOyB9XG5cbi5tZGktc2NhbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NzJcIjsgfVxuXG4ubWRpLXNjYWxlLWJhbGFuY2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1RDFcIjsgfVxuXG4ubWRpLXNjYWxlLWJhdGhyb29tOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDczXCI7IH1cblxuLm1kaS1zY2FubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkFBXCI7IH1cblxuLm1kaS1zY2hvb2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NzRcIjsgfVxuXG4ubWRpLXNjcmVlbi1yb3RhdGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ3NVwiOyB9XG5cbi5tZGktc2NyZWVuLXJvdGF0aW9uLWxvY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NzZcIjsgfVxuXG4ubWRpLXNjcmV3ZHJpdmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDc3XCI7IH1cblxuLm1kaS1zY3JpcHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0NzhcIjsgfVxuXG4ubWRpLXNkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDc5XCI7IH1cblxuLm1kaS1zZWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDdBXCI7IH1cblxuLm1kaS1zZWFyY2gtd2ViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzBFXCI7IH1cblxuLm1kaS1zZWF0LWZsYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0N0JcIjsgfVxuXG4ubWRpLXNlYXQtZmxhdC1hbmdsZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0N0NcIjsgfVxuXG4ubWRpLXNlYXQtaW5kaXZpZHVhbC1zdWl0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ3RFwiOyB9XG5cbi5tZGktc2VhdC1sZWdyb29tLWV4dHJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDdFXCI7IH1cblxuLm1kaS1zZWF0LWxlZ3Jvb20tbm9ybWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDdGXCI7IH1cblxuLm1kaS1zZWF0LWxlZ3Jvb20tcmVkdWNlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4MFwiOyB9XG5cbi5tZGktc2VhdC1yZWNsaW5lLWV4dHJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDgxXCI7IH1cblxuLm1kaS1zZWF0LXJlY2xpbmUtbm9ybWFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDgyXCI7IH1cblxuLm1kaS1zZWN1cml0eTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4M1wiOyB9XG5cbi5tZGktc2VjdXJpdHktaG9tZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4OVwiOyB9XG5cbi5tZGktc2VjdXJpdHktbmV0d29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4NFwiOyB9XG5cbi5tZGktc2VsZWN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDg1XCI7IH1cblxuLm1kaS1zZWxlY3QtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDg2XCI7IH1cblxuLm1kaS1zZWxlY3QtaW52ZXJzZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4N1wiOyB9XG5cbi5tZGktc2VsZWN0LW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4OFwiOyB9XG5cbi5tZGktc2VsZWN0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDg5XCI7IH1cblxuLm1kaS1zZWxlY3Rpb24tb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzc2XCI7IH1cblxuLm1kaS1zZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDhBXCI7IH1cblxuLm1kaS1zZW5kLXNlY3VyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFQ1wiOyB9XG5cbi5tZGktc2VyaWFsLXBvcnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NUNcIjsgfVxuXG4ubWRpLXNlcnZlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4QlwiOyB9XG5cbi5tZGktc2VydmVyLW1pbnVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDhDXCI7IH1cblxuLm1kaS1zZXJ2ZXItbmV0d29yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ4RFwiOyB9XG5cbi5tZGktc2VydmVyLW5ldHdvcmstb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDhFXCI7IH1cblxuLm1kaS1zZXJ2ZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDhGXCI7IH1cblxuLm1kaS1zZXJ2ZXItcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5MFwiOyB9XG5cbi5tZGktc2VydmVyLXJlbW92ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5MVwiOyB9XG5cbi5tZGktc2VydmVyLXNlY3VyaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDkyXCI7IH1cblxuLm1kaS1zZXQtYWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzc3XCI7IH1cblxuLm1kaS1zZXQtY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzc4XCI7IH1cblxuLm1kaS1zZXQtY2VudGVyLXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzc5XCI7IH1cblxuLm1kaS1zZXQtbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc3QVwiOyB9XG5cbi5tZGktc2V0LWxlZnQtY2VudGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzdCXCI7IH1cblxuLm1kaS1zZXQtbGVmdC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc3Q1wiOyB9XG5cbi5tZGktc2V0LW5vbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3N0RcIjsgfVxuXG4ubWRpLXNldC1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc3RVwiOyB9XG5cbi5tZGktc2V0dGluZ3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0OTNcIjsgfVxuXG4ubWRpLXNldHRpbmdzLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5NFwiOyB9XG5cbi5tZGktc2hhcGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzBcIjsgfVxuXG4ubWRpLXNoYXBlLWNpcmNsZS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjVEXCI7IH1cblxuLm1kaS1zaGFwZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODMxXCI7IH1cblxuLm1kaS1zaGFwZS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDk1XCI7IH1cblxuLm1kaS1zaGFwZS1wb2x5Z29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NUVcIjsgfVxuXG4ubWRpLXNoYXBlLXJlY3RhbmdsZS1wbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjVGXCI7IH1cblxuLm1kaS1zaGFwZS1zcXVhcmUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2MFwiOyB9XG5cbi5tZGktc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0OTZcIjsgfVxuXG4ubWRpLXNoYXJlLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0OTdcIjsgfVxuXG4ubWRpLXNoaWVsZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5OFwiOyB9XG5cbi5tZGktc2hpZWxkLWhhbGYtZnVsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc3RlwiOyB9XG5cbi5tZGktc2hpZWxkLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0OTlcIjsgfVxuXG4ubWRpLXNoaXAtd2hlZWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzJcIjsgfVxuXG4ubWRpLXNob3BwaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDlBXCI7IH1cblxuLm1kaS1zaG9wcGluZy1tdXNpYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5QlwiOyB9XG5cbi5tZGktc2hvdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzBGXCI7IH1cblxuLm1kaS1zaG92ZWwtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzEwXCI7IH1cblxuLm1kaS1zaHJlZGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5Q1wiOyB9XG5cbi5tZGktc2h1ZmZsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5RFwiOyB9XG5cbi5tZGktc2h1ZmZsZS1kaXNhYmxlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ5RVwiOyB9XG5cbi5tZGktc2h1ZmZsZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNDlGXCI7IH1cblxuLm1kaS1zaWdtYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBMFwiOyB9XG5cbi5tZGktc2lnbWEtbG93ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MkJcIjsgfVxuXG4ubWRpLXNpZ24tY2F1dGlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBMVwiOyB9XG5cbi5tZGktc2lnbi1kaXJlY3Rpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3ODBcIjsgfVxuXG4ubWRpLXNpZ24tdGV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc4MVwiOyB9XG5cbi5tZGktc2lnbmFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEEyXCI7IH1cblxuLm1kaS1zaWduYWwtMmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MTFcIjsgfVxuXG4ubWRpLXNpZ25hbC0zZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxMlwiOyB9XG5cbi5tZGktc2lnbmFsLTRnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzEzXCI7IH1cblxuLm1kaS1zaWduYWwtaHNwYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxNFwiOyB9XG5cbi5tZGktc2lnbmFsLWhzcGEtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxNVwiOyB9XG5cbi5tZGktc2lnbmFsLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc4MlwiOyB9XG5cbi5tZGktc2lnbmFsLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MEFcIjsgfVxuXG4ubWRpLXNpbHZlcndhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QTNcIjsgfVxuXG4ubWRpLXNpbHZlcndhcmUtZm9yazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBNFwiOyB9XG5cbi5tZGktc2lsdmVyd2FyZS1zcG9vbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBNVwiOyB9XG5cbi5tZGktc2lsdmVyd2FyZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEE2XCI7IH1cblxuLm1kaS1zaW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QTdcIjsgfVxuXG4ubWRpLXNpbS1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBOFwiOyB9XG5cbi5tZGktc2ltLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBOVwiOyB9XG5cbi5tZGktc2l0ZW1hcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBQVwiOyB9XG5cbi5tZGktc2tpcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBQlwiOyB9XG5cbi5tZGktc2tpcC1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEFDXCI7IH1cblxuLm1kaS1za2lwLW5leHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QURcIjsgfVxuXG4ubWRpLXNraXAtbmV4dC1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NjFcIjsgfVxuXG4ubWRpLXNraXAtbmV4dC1jaXJjbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2MlwiOyB9XG5cbi5tZGktc2tpcC1wcmV2aW91czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBRVwiOyB9XG5cbi5tZGktc2tpcC1wcmV2aW91cy1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NjNcIjsgfVxuXG4ubWRpLXNraXAtcHJldmlvdXMtY2lyY2xlLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NjRcIjsgfVxuXG4ubWRpLXNrdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjhCXCI7IH1cblxuLm1kaS1za3lwZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRBRlwiOyB9XG5cbi5tZGktc2t5cGUtYnVzaW5lc3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QjBcIjsgfVxuXG4ubWRpLXNsYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEIxXCI7IH1cblxuLm1kaS1zbGVlcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRCMlwiOyB9XG5cbi5tZGktc2xlZXAtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEIzXCI7IH1cblxuLm1kaS1zbW9raW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEI0XCI7IH1cblxuLm1kaS1zbW9raW5nLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRCNVwiOyB9XG5cbi5tZGktc25hcGNoYXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QjZcIjsgfVxuXG4ubWRpLXNub3dmbGFrZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxNlwiOyB9XG5cbi5tZGktc25vd21hbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRCN1wiOyB9XG5cbi5tZGktc29jY2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEI4XCI7IH1cblxuLm1kaS1zb2NjZXItZmllbGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzNcIjsgfVxuXG4ubWRpLXNvZmE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QjlcIjsgfVxuXG4ubWRpLXNvbGlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjhDXCI7IH1cblxuLm1kaS1zb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEJBXCI7IH1cblxuLm1kaS1zb3J0LWFscGhhYmV0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRCQlwiOyB9XG5cbi5tZGktc29ydC1hc2NlbmRpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QkNcIjsgfVxuXG4ubWRpLXNvcnQtZGVzY2VuZGluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRCRFwiOyB9XG5cbi5tZGktc29ydC1udW1lcmljOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEJFXCI7IH1cblxuLm1kaS1zb3J0LXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QkZcIjsgfVxuXG4ubWRpLXNvdW5kY2xvdWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QzBcIjsgfVxuXG4ubWRpLXNvdXJjZS1icmFuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MkNcIjsgfVxuXG4ubWRpLXNvdXJjZS1jb21taXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MTdcIjsgfVxuXG4ubWRpLXNvdXJjZS1jb21taXQtZW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzE4XCI7IH1cblxuLm1kaS1zb3VyY2UtY29tbWl0LWVuZC1sb2NhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxOVwiOyB9XG5cbi5tZGktc291cmNlLWNvbW1pdC1sb2NhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcxQVwiOyB9XG5cbi5tZGktc291cmNlLWNvbW1pdC1uZXh0LWxvY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzFCXCI7IH1cblxuLm1kaS1zb3VyY2UtY29tbWl0LXN0YXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzFDXCI7IH1cblxuLm1kaS1zb3VyY2UtY29tbWl0LXN0YXJ0LW5leHQtbG9jYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MURcIjsgfVxuXG4ubWRpLXNvdXJjZS1mb3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEMxXCI7IH1cblxuLm1kaS1zb3VyY2UtbWVyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MkRcIjsgfVxuXG4ubWRpLXNvdXJjZS1wdWxsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEMyXCI7IH1cblxuLm1kaS1zb3ktc2F1Y2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RURcIjsgfVxuXG4ubWRpLXNwZWFrZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0QzNcIjsgfVxuXG4ubWRpLXNwZWFrZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEM0XCI7IH1cblxuLm1kaS1zcGVha2VyLXdpcmVsZXNzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzFFXCI7IH1cblxuLm1kaS1zcGVlZG9tZXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRDNVwiOyB9XG5cbi5tZGktc3BlbGxjaGVjazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRDNlwiOyB9XG5cbi5tZGktc3BvdGlmeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRDN1wiOyB9XG5cbi5tZGktc3BvdGxpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEM4XCI7IH1cblxuLm1kaS1zcG90bGlnaHQtYmVhbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRDOVwiOyB9XG5cbi5tZGktc3ByYXk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2NjVcIjsgfVxuXG4ubWRpLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2M1wiOyB9XG5cbi5tZGktc3F1YXJlLWluYzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRDQVwiOyB9XG5cbi5tZGktc3F1YXJlLWluYy1jYXNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNENCXCI7IH1cblxuLm1kaS1zcXVhcmUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2MlwiOyB9XG5cbi5tZGktc3F1YXJlLXJvb3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3ODNcIjsgfVxuXG4ubWRpLXN0YWNrLW92ZXJmbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNENDXCI7IH1cblxuLm1kaS1zdGFja2V4Y2hhbmdlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjBCXCI7IH1cblxuLm1kaS1zdGFkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzFGXCI7IH1cblxuLm1kaS1zdGFpcnM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0Q0RcIjsgfVxuXG4ubWRpLXN0YW5kYXJkLWRlZmluaXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RUVcIjsgfVxuXG4ubWRpLXN0YXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0Q0VcIjsgfVxuXG4ubWRpLXN0YXItY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNENGXCI7IH1cblxuLm1kaS1zdGFyLWhhbGY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RDBcIjsgfVxuXG4ubWRpLXN0YXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEQxXCI7IH1cblxuLm1kaS1zdGFyLW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RDJcIjsgfVxuXG4ubWRpLXN0ZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEQzXCI7IH1cblxuLm1kaS1zdGVlcmluZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRENFwiOyB9XG5cbi5tZGktc3RlcC1iYWNrd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRENVwiOyB9XG5cbi5tZGktc3RlcC1iYWNrd2FyZC0yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEQ2XCI7IH1cblxuLm1kaS1zdGVwLWZvcndhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RDdcIjsgfVxuXG4ubWRpLXN0ZXAtZm9yd2FyZC0yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEQ4XCI7IH1cblxuLm1kaS1zdGV0aG9zY29wZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjREOVwiOyB9XG5cbi5tZGktc3RpY2tlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVEMFwiOyB9XG5cbi5tZGktc3RpY2tlci1lbW9qaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc4NFwiOyB9XG5cbi5tZGktc3RvY2tpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0REFcIjsgfVxuXG4ubWRpLXN0b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0REJcIjsgfVxuXG4ubWRpLXN0b3AtY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjY2XCI7IH1cblxuLm1kaS1zdG9wLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjY3XCI7IH1cblxuLm1kaS1zdG9yZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjREQ1wiOyB9XG5cbi5tZGktc3RvcmUtMjQtaG91cjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRERFwiOyB9XG5cbi5tZGktc3RvdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0REVcIjsgfVxuXG4ubWRpLXN1YmRpcmVjdG9yeS1hcnJvdy1sZWZ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjBDXCI7IH1cblxuLm1kaS1zdWJkaXJlY3RvcnktYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MERcIjsgfVxuXG4ubWRpLXN1YndheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZBQlwiOyB9XG5cbi5tZGktc3Vid2F5LXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0REZcIjsgfVxuXG4ubWRpLXN1bW1pdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc4NVwiOyB9XG5cbi5tZGktc3VuZ2xhc3NlczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRFMFwiOyB9XG5cbi5tZGktc3Vycm91bmQtc291bmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QzVcIjsgfVxuXG4ubWRpLXN1cnJvdW5kLXNvdW5kLTItMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdFRlwiOyB9XG5cbi5tZGktc3Vycm91bmQtc291bmQtMy0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0YwXCI7IH1cblxuLm1kaS1zdXJyb3VuZC1zb3VuZC01LTE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RjFcIjsgfVxuXG4ubWRpLXN1cnJvdW5kLXNvdW5kLTctMTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGMlwiOyB9XG5cbi5tZGktc3ZnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzIwXCI7IH1cblxuLm1kaS1zd2FwLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RTFcIjsgfVxuXG4ubWRpLXN3YXAtdmVydGljYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RTJcIjsgfVxuXG4ubWRpLXN3aW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RTNcIjsgfVxuXG4ubWRpLXN3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRFNFwiOyB9XG5cbi5tZGktc3dvcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RTVcIjsgfVxuXG4ubWRpLXN3b3JkLWNyb3NzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzg2XCI7IH1cblxuLm1kaS1zeW5jOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEU2XCI7IH1cblxuLm1kaS1zeW5jLWFsZXJ0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEU3XCI7IH1cblxuLm1kaS1zeW5jLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRFOFwiOyB9XG5cbi5tZGktdGFiOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEU5XCI7IH1cblxuLm1kaS10YWItcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc1QlwiOyB9XG5cbi5tZGktdGFiLXVuc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RUFcIjsgfVxuXG4ubWRpLXRhYmxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEVCXCI7IH1cblxuLm1kaS10YWJsZS1jb2x1bW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzRcIjsgfVxuXG4ubWRpLXRhYmxlLWNvbHVtbi1wbHVzLWFmdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEVDXCI7IH1cblxuLm1kaS10YWJsZS1jb2x1bW4tcGx1cy1iZWZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RURcIjsgfVxuXG4ubWRpLXRhYmxlLWNvbHVtbi1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RUVcIjsgfVxuXG4ubWRpLXRhYmxlLWNvbHVtbi13aWR0aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRFRlwiOyB9XG5cbi5tZGktdGFibGUtZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRGMFwiOyB9XG5cbi5tZGktdGFibGUtbGFyZ2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RjFcIjsgfVxuXG4ubWRpLXRhYmxlLW9mLWNvbnRlbnRzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODM1XCI7IH1cblxuLm1kaS10YWJsZS1yb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzZcIjsgfVxuXG4ubWRpLXRhYmxlLXJvdy1oZWlnaHQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RjJcIjsgfVxuXG4ubWRpLXRhYmxlLXJvdy1wbHVzLWFmdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEYzXCI7IH1cblxuLm1kaS10YWJsZS1yb3ctcGx1cy1iZWZvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RjRcIjsgfVxuXG4ubWRpLXRhYmxlLXJvdy1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RjVcIjsgfVxuXG4ubWRpLXRhYmxlLXNldHRpbmdzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODM3XCI7IH1cblxuLm1kaS10YWJsZXQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RjZcIjsgfVxuXG4ubWRpLXRhYmxldC1hbmRyb2lkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEY3XCI7IH1cblxuLm1kaS10YWJsZXQtaXBhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRGOFwiOyB9XG5cbi5tZGktdGFjbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2MVwiOyB9XG5cbi5tZGktdGFnOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEY5XCI7IH1cblxuLm1kaS10YWctZmFjZXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RkFcIjsgfVxuXG4ubWRpLXRhZy1oZWFydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4QVwiOyB9XG5cbi5tZGktdGFnLW11bHRpcGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNEZCXCI7IH1cblxuLm1kaS10YWctb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRGQ1wiOyB9XG5cbi5tZGktdGFnLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MjFcIjsgfVxuXG4ubWRpLXRhZy1yZW1vdmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MjJcIjsgfVxuXG4ubWRpLXRhZy10ZXh0LW91dGxpbmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY0RkRcIjsgfVxuXG4ubWRpLXRhcmdldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRGRVwiOyB9XG5cbi5tZGktdGF4aTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjRGRlwiOyB9XG5cbi5tZGktdGVhbXZpZXdlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwMFwiOyB9XG5cbi5tZGktdGVsZWdyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MDFcIjsgfVxuXG4ubWRpLXRlbGV2aXNpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MDJcIjsgfVxuXG4ubWRpLXRlbGV2aXNpb24tYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODM4XCI7IH1cblxuLm1kaS10ZWxldmlzaW9uLWNsYXNzaWM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RjNcIjsgfVxuXG4ubWRpLXRlbGV2aXNpb24tY2xhc3NpYy1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4MzlcIjsgfVxuXG4ubWRpLXRlbGV2aXNpb24tZ3VpZGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MDNcIjsgfVxuXG4ubWRpLXRlbGV2aXNpb24tb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODNBXCI7IH1cblxuLm1kaS10ZW1wZXJhdHVyZS1jZWxzaXVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTA0XCI7IH1cblxuLm1kaS10ZW1wZXJhdHVyZS1mYWhyZW5oZWl0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTA1XCI7IH1cblxuLm1kaS10ZW1wZXJhdHVyZS1rZWx2aW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MDZcIjsgfVxuXG4ubWRpLXRlbm5pczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwN1wiOyB9XG5cbi5tZGktdGVudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwOFwiOyB9XG5cbi5tZGktdGVycmFpbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwOVwiOyB9XG5cbi5tZGktdGVzdC10dWJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjY4XCI7IH1cblxuLm1kaS10ZXh0LXNoYWRvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2OVwiOyB9XG5cbi5tZGktdGV4dC10by1zcGVlY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MEFcIjsgfVxuXG4ubWRpLXRleHQtdG8tc3BlZWNoLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwQlwiOyB9XG5cbi5tZGktdGV4dGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYwRVwiOyB9XG5cbi5tZGktdGV4dGJveC1wYXNzd29yZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGNFwiOyB9XG5cbi5tZGktdGV4dHVyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwQ1wiOyB9XG5cbi5tZGktdGhlYXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwRFwiOyB9XG5cbi5tZGktdGhlbWUtbGlnaHQtZGFyazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUwRVwiOyB9XG5cbi5tZGktdGhlcm1vbWV0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MEZcIjsgfVxuXG4ubWRpLXRoZXJtb21ldGVyLWxpbmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTEwXCI7IH1cblxuLm1kaS10aG91Z2h0LWJ1YmJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGNVwiOyB9XG5cbi5tZGktdGhvdWdodC1idWJibGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGNlwiOyB9XG5cbi5tZGktdGh1bWItZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxMVwiOyB9XG5cbi5tZGktdGh1bWItZG93bi1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTEyXCI7IH1cblxuLm1kaS10aHVtYi11cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxM1wiOyB9XG5cbi5tZGktdGh1bWItdXAtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxNFwiOyB9XG5cbi5tZGktdGh1bWJzLXVwLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MTVcIjsgfVxuXG4ubWRpLXRpY2tldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxNlwiOyB9XG5cbi5tZGktdGlja2V0LWFjY291bnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MTdcIjsgfVxuXG4ubWRpLXRpY2tldC1jb25maXJtYXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MThcIjsgfVxuXG4ubWRpLXRpY2tldC1wZXJjZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzIzXCI7IH1cblxuLm1kaS10aWU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MTlcIjsgfVxuXG4ubWRpLXRpbGRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzI0XCI7IH1cblxuLm1kaS10aW1lbGFwc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MUFcIjsgfVxuXG4ubWRpLXRpbWVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTFCXCI7IH1cblxuLm1kaS10aW1lci0xMDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxQ1wiOyB9XG5cbi5tZGktdGltZXItMzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUxRFwiOyB9XG5cbi5tZGktdGltZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTFFXCI7IH1cblxuLm1kaS10aW1lci1zYW5kOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTFGXCI7IH1cblxuLm1kaS10aW1lci1zYW5kLWVtcHR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkFDXCI7IH1cblxuLm1kaS10aW1lci1zYW5kLWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3OEJcIjsgfVxuXG4ubWRpLXRpbWV0YWJsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyMFwiOyB9XG5cbi5tZGktdG9nZ2xlLXN3aXRjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyMVwiOyB9XG5cbi5tZGktdG9nZ2xlLXN3aXRjaC1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MjJcIjsgfVxuXG4ubWRpLXRvb2x0aXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MjNcIjsgfVxuXG4ubWRpLXRvb2x0aXAtZWRpdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyNFwiOyB9XG5cbi5tZGktdG9vbHRpcC1pbWFnZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyNVwiOyB9XG5cbi5tZGktdG9vbHRpcC1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTI2XCI7IH1cblxuLm1kaS10b29sdGlwLW91dGxpbmUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyN1wiOyB9XG5cbi5tZGktdG9vbHRpcC10ZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTI4XCI7IH1cblxuLm1kaS10b290aDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyOVwiOyB9XG5cbi5tZGktdG9yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTJBXCI7IH1cblxuLm1kaS10b3dlci1iZWFjaDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4MFwiOyB9XG5cbi5tZGktdG93ZXItZmlyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY4MVwiOyB9XG5cbi5tZGktdG93aW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODNCXCI7IH1cblxuLm1kaS10cmFja3BhZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGN1wiOyB9XG5cbi5tZGktdHJhZmZpYy1saWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUyQlwiOyB9XG5cbi5tZGktdHJhaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MkNcIjsgfVxuXG4ubWRpLXRyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MkRcIjsgfVxuXG4ubWRpLXRyYW5zY3JpYmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MkVcIjsgfVxuXG4ubWRpLXRyYW5zY3JpYmUtY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MkZcIjsgfVxuXG4ubWRpLXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTMwXCI7IH1cblxuLm1kaS10cmFuc2l0LXRyYW5zZmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkFEXCI7IH1cblxuLm1kaS10cmFuc2xhdGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1Q0FcIjsgfVxuXG4ubWRpLXRyZWFzdXJlLWNoZXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzI1XCI7IH1cblxuLm1kaS10cmVlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTMxXCI7IH1cblxuLm1kaS10cmVsbG86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MzJcIjsgfVxuXG4ubWRpLXRyZW5kaW5nLWRvd246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MzNcIjsgfVxuXG4ubWRpLXRyZW5kaW5nLW5ldXRyYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MzRcIjsgfVxuXG4ubWRpLXRyZW5kaW5nLXVwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTM1XCI7IH1cblxuLm1kaS10cmlhbmdsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUzNlwiOyB9XG5cbi5tZGktdHJpYW5nbGUtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUzN1wiOyB9XG5cbi5tZGktdHJvcGh5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTM4XCI7IH1cblxuLm1kaS10cm9waHktYXdhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1MzlcIjsgfVxuXG4ubWRpLXRyb3BoeS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTNBXCI7IH1cblxuLm1kaS10cm9waHktdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUzQlwiOyB9XG5cbi5tZGktdHJvcGh5LXZhcmlhbnQtb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUzQ1wiOyB9XG5cbi5tZGktdHJ1Y2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1M0RcIjsgfVxuXG4ubWRpLXRydWNrLWRlbGl2ZXJ5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTNFXCI7IH1cblxuLm1kaS10cnVjay1mYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzg3XCI7IH1cblxuLm1kaS10cnVjay10cmFpbGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzI2XCI7IH1cblxuLm1kaS10c2hpcnQtY3JldzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjUzRlwiOyB9XG5cbi5tZGktdHNoaXJ0LXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NDBcIjsgfVxuXG4ubWRpLXR1bWJscjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU0MVwiOyB9XG5cbi5tZGktdHVtYmxyLXJlYmxvZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU0MlwiOyB9XG5cbi5tZGktdHVuZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYyRVwiOyB9XG5cbi5tZGktdHVuZS12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY2QVwiOyB9XG5cbi5tZGktdHdpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTQzXCI7IH1cblxuLm1kaS10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTQ0XCI7IH1cblxuLm1kaS10d2l0dGVyLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU0NVwiOyB9XG5cbi5tZGktdHdpdHRlci1jaXJjbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NDZcIjsgfVxuXG4ubWRpLXR3aXR0ZXItcmV0d2VldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU0N1wiOyB9XG5cbi5tZGktdWJlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc0OFwiOyB9XG5cbi5tZGktdWJ1bnR1OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTQ4XCI7IH1cblxuLm1kaS11bHRyYS1oaWdoLWRlZmluaXRpb246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RjhcIjsgfVxuXG4ubWRpLXVtYnJhY286YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NDlcIjsgfVxuXG4ubWRpLXVtYnJlbGxhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTRBXCI7IH1cblxuLm1kaS11bWJyZWxsYS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTRCXCI7IH1cblxuLm1kaS11bmRvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTRDXCI7IH1cblxuLm1kaS11bmRvLXZhcmlhbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NERcIjsgfVxuXG4ubWRpLXVuZm9sZC1sZXNzLWhvcml6b250YWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NEVcIjsgfVxuXG4ubWRpLXVuZm9sZC1sZXNzLXZlcnRpY2FsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzVGXCI7IH1cblxuLm1kaS11bmZvbGQtbW9yZS1ob3Jpem9udGFsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTRGXCI7IH1cblxuLm1kaS11bmZvbGQtbW9yZS12ZXJ0aWNhbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc2MFwiOyB9XG5cbi5tZGktdW5ncm91cDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1MFwiOyB9XG5cbi5tZGktdW5pdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2QUVcIjsgfVxuXG4ubWRpLXVudGFwcGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NTFcIjsgfVxuXG4ubWRpLXVwZGF0ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjZBRlwiOyB9XG5cbi5tZGktdXBsb2FkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTUyXCI7IH1cblxuLm1kaS11cGxvYWQtbXVsdGlwbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4M0NcIjsgfVxuXG4ubWRpLXVwbG9hZC1uZXR3b3JrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkY1XCI7IH1cblxuLm1kaS11c2I6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NTNcIjsgfVxuXG4ubWRpLXZhbi1wYXNzZW5nZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RjlcIjsgfVxuXG4ubWRpLXZhbi11dGlsaXR5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0ZBXCI7IH1cblxuLm1kaS12YW5pc2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RkJcIjsgfVxuXG4ubWRpLXZlY3Rvci1hcnJhbmdlLWFib3ZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTU0XCI7IH1cblxuLm1kaS12ZWN0b3ItYXJyYW5nZS1iZWxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1NVwiOyB9XG5cbi5tZGktdmVjdG9yLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1NlwiOyB9XG5cbi5tZGktdmVjdG9yLWNpcmNsZS12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTU3XCI7IH1cblxuLm1kaS12ZWN0b3ItY29tYmluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1OFwiOyB9XG5cbi5tZGktdmVjdG9yLWN1cnZlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTU5XCI7IH1cblxuLm1kaS12ZWN0b3ItZGlmZmVyZW5jZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1QVwiOyB9XG5cbi5tZGktdmVjdG9yLWRpZmZlcmVuY2UtYWI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NUJcIjsgfVxuXG4ubWRpLXZlY3Rvci1kaWZmZXJlbmNlLWJhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTVDXCI7IH1cblxuLm1kaS12ZWN0b3ItaW50ZXJzZWN0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTVEXCI7IH1cblxuLm1kaS12ZWN0b3ItbGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU1RVwiOyB9XG5cbi5tZGktdmVjdG9yLXBvaW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTVGXCI7IH1cblxuLm1kaS12ZWN0b3ItcG9seWdvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2MFwiOyB9XG5cbi5tZGktdmVjdG9yLXBvbHlsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTYxXCI7IH1cblxuLm1kaS12ZWN0b3ItcmFkaXVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzQ5XCI7IH1cblxuLm1kaS12ZWN0b3ItcmVjdGFuZ2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUM2XCI7IH1cblxuLm1kaS12ZWN0b3Itc2VsZWN0aW9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTYyXCI7IH1cblxuLm1kaS12ZWN0b3Itc3F1YXJlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGMDAxXCI7IH1cblxuLm1kaS12ZWN0b3ItdHJpYW5nbGU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NjNcIjsgfVxuXG4ubWRpLXZlY3Rvci11bmlvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2NFwiOyB9XG5cbi5tZGktdmVubW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NzhcIjsgfVxuXG4ubWRpLXZlcmlmaWVkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTY1XCI7IH1cblxuLm1kaS12aWJyYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTY2XCI7IH1cblxuLm1kaS12aWRlbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2N1wiOyB9XG5cbi5tZGktdmlkZW8tM2Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3RkNcIjsgfVxuXG4ubWRpLXZpZGVvLTRrLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgzRFwiOyB9XG5cbi5tZGktdmlkZW8taW5wdXQtYW50ZW5uYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjgzRVwiOyB9XG5cbi5tZGktdmlkZW8taW5wdXQtY29tcG9uZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODNGXCI7IH1cblxuLm1kaS12aWRlby1pbnB1dC1oZG1pOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODQwXCI7IH1cblxuLm1kaS12aWRlby1pbnB1dC1zdmlkZW86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4NDFcIjsgfVxuXG4ubWRpLXZpZGVvLW9mZjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2OFwiOyB9XG5cbi5tZGktdmlkZW8tc3dpdGNoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTY5XCI7IH1cblxuLm1kaS12aWV3LWFnZW5kYTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2QVwiOyB9XG5cbi5tZGktdmlldy1hcnJheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2QlwiOyB9XG5cbi5tZGktdmlldy1jYXJvdXNlbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2Q1wiOyB9XG5cbi5tZGktdmlldy1jb2x1bW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NkRcIjsgfVxuXG4ubWRpLXZpZXctZGFzaGJvYXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTZFXCI7IH1cblxuLm1kaS12aWV3LWRhc2hib2FyZC12YXJpYW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGODQyXCI7IH1cblxuLm1kaS12aWV3LWRheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU2RlwiOyB9XG5cbi5tZGktdmlldy1ncmlkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTcwXCI7IH1cblxuLm1kaS12aWV3LWhlYWRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTcxXCI7IH1cblxuLm1kaS12aWV3LWxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NzJcIjsgfVxuXG4ubWRpLXZpZXctbW9kdWxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTczXCI7IH1cblxuLm1kaS12aWV3LXBhcmFsbGVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzI3XCI7IH1cblxuLm1kaS12aWV3LXF1aWx0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTc0XCI7IH1cblxuLm1kaS12aWV3LXNlcXVlbnRpYWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MjhcIjsgfVxuXG4ubWRpLXZpZXctc3RyZWFtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTc1XCI7IH1cblxuLm1kaS12aWV3LXdlZWs6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NzZcIjsgfVxuXG4ubWRpLXZpbWVvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTc3XCI7IH1cblxuLm1kaS12aW9saW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MEZcIjsgfVxuXG4ubWRpLXZpc3VhbHN0dWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYxMFwiOyB9XG5cbi5tZGktdms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1NzlcIjsgfVxuXG4ubWRpLXZrLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU3QVwiOyB9XG5cbi5tZGktdmstY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTdCXCI7IH1cblxuLm1kaS12bGM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1N0NcIjsgfVxuXG4ubWRpLXZvaWNlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUNCXCI7IH1cblxuLm1kaS12b2ljZW1haWw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1N0RcIjsgfVxuXG4ubWRpLXZvbHVtZS1oaWdoOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTdFXCI7IH1cblxuLm1kaS12b2x1bWUtbG93OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTdGXCI7IH1cblxuLm1kaS12b2x1bWUtbWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTgwXCI7IH1cblxuLm1kaS12b2x1bWUtbWludXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NURcIjsgfVxuXG4ubWRpLXZvbHVtZS1tdXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzVFXCI7IH1cblxuLm1kaS12b2x1bWUtb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTgxXCI7IH1cblxuLm1kaS12b2x1bWUtcGx1czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc1Q1wiOyB9XG5cbi5tZGktdnBuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTgyXCI7IH1cblxuLm1kaS12dWVqczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjg0M1wiOyB9XG5cbi5tZGktd2FsazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU4M1wiOyB9XG5cbi5tZGktd2FsbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjdGRFwiOyB9XG5cbi5tZGktd2FsbGV0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTg0XCI7IH1cblxuLm1kaS13YWxsZXQtZ2lmdGNhcmQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1ODVcIjsgfVxuXG4ubWRpLXdhbGxldC1tZW1iZXJzaGlwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTg2XCI7IH1cblxuLm1kaS13YWxsZXQtdHJhdmVsOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTg3XCI7IH1cblxuLm1kaS13YW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1ODhcIjsgfVxuXG4ubWRpLXdhc2hpbmctbWFjaGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcyOVwiOyB9XG5cbi5tZGktd2F0Y2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1ODlcIjsgfVxuXG4ubWRpLXdhdGNoLWV4cG9ydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU4QVwiOyB9XG5cbi5tZGktd2F0Y2gtaW1wb3J0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNThCXCI7IH1cblxuLm1kaS13YXRjaC12aWJyYXRlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNkIwXCI7IH1cblxuLm1kaS13YXRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU4Q1wiOyB9XG5cbi5tZGktd2F0ZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNThEXCI7IH1cblxuLm1kaS13YXRlci1wZXJjZW50OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNThFXCI7IH1cblxuLm1kaS13YXRlci1wdW1wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNThGXCI7IH1cblxuLm1kaS13YXRlcm1hcms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MTJcIjsgfVxuXG4ubWRpLXdhdmVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzhDXCI7IH1cblxuLm1kaS13ZWF0aGVyLWNsb3VkeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5MFwiOyB9XG5cbi5tZGktd2VhdGhlci1mb2c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1OTFcIjsgfVxuXG4ubWRpLXdlYXRoZXItaGFpbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5MlwiOyB9XG5cbi5tZGktd2VhdGhlci1saWdodG5pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1OTNcIjsgfVxuXG4ubWRpLXdlYXRoZXItbGlnaHRuaW5nLXJhaW55OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjdEXCI7IH1cblxuLm1kaS13ZWF0aGVyLW5pZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTk0XCI7IH1cblxuLm1kaS13ZWF0aGVyLXBhcnRseWNsb3VkeTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5NVwiOyB9XG5cbi5tZGktd2VhdGhlci1wb3VyaW5nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTk2XCI7IH1cblxuLm1kaS13ZWF0aGVyLXJhaW55OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTk3XCI7IH1cblxuLm1kaS13ZWF0aGVyLXNub3d5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTk4XCI7IH1cblxuLm1kaS13ZWF0aGVyLXNub3d5LXJhaW55OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNjdFXCI7IH1cblxuLm1kaS13ZWF0aGVyLXN1bm55OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTk5XCI7IH1cblxuLm1kaS13ZWF0aGVyLXN1bnNldDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5QVwiOyB9XG5cbi5tZGktd2VhdGhlci1zdW5zZXQtZG93bjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5QlwiOyB9XG5cbi5tZGktd2VhdGhlci1zdW5zZXQtdXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1OUNcIjsgfVxuXG4ubWRpLXdlYXRoZXItd2luZHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1OURcIjsgfVxuXG4ubWRpLXdlYXRoZXItd2luZHktdmFyaWFudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjU5RVwiOyB9XG5cbi5tZGktd2ViOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNTlGXCI7IH1cblxuLm1kaS13ZWJjYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QTBcIjsgfVxuXG4ubWRpLXdlYmhvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2MkZcIjsgfVxuXG4ubWRpLXdlYnBhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3MkFcIjsgfVxuXG4ubWRpLXdlY2hhdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjYxMVwiOyB9XG5cbi5tZGktd2VpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUExXCI7IH1cblxuLm1kaS13ZWlnaHQta2lsb2dyYW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QTJcIjsgfVxuXG4ubWRpLXdoYXRzYXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUEzXCI7IH1cblxuLm1kaS13aGVlbGNoYWlyLWFjY2Vzc2liaWxpdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QTRcIjsgfVxuXG4ubWRpLXdoaXRlLWJhbGFuY2UtYXV0bzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBNVwiOyB9XG5cbi5tZGktd2hpdGUtYmFsYW5jZS1pbmNhbmRlc2NlbnQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QTZcIjsgfVxuXG4ubWRpLXdoaXRlLWJhbGFuY2UtaXJpZGVzY2VudDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBN1wiOyB9XG5cbi5tZGktd2hpdGUtYmFsYW5jZS1zdW5ueTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBOFwiOyB9XG5cbi5tZGktd2lkZ2V0czpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcyQlwiOyB9XG5cbi5tZGktd2lmaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBOVwiOyB9XG5cbi5tZGktd2lmaS1vZmY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QUFcIjsgfVxuXG4ubWRpLXdpaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBQlwiOyB9XG5cbi5tZGktd2lpdTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjcyQ1wiOyB9XG5cbi5tZGktd2lraXBlZGlhOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUFDXCI7IH1cblxuLm1kaS13aW5kb3ctY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QURcIjsgfVxuXG4ubWRpLXdpbmRvdy1jbG9zZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QUVcIjsgfVxuXG4ubWRpLXdpbmRvdy1tYXhpbWl6ZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVBRlwiOyB9XG5cbi5tZGktd2luZG93LW1pbmltaXplOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUIwXCI7IH1cblxuLm1kaS13aW5kb3ctb3BlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVCMVwiOyB9XG5cbi5tZGktd2luZG93LXJlc3RvcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QjJcIjsgfVxuXG4ubWRpLXdpbmRvd3M6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QjNcIjsgfVxuXG4ubWRpLXdvcmRwcmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVCNFwiOyB9XG5cbi5tZGktd29ya2VyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUI1XCI7IH1cblxuLm1kaS13cmFwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUI2XCI7IH1cblxuLm1kaS13cmVuY2g6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QjdcIjsgfVxuXG4ubWRpLXd1bmRlcmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QjhcIjsgfVxuXG4ubWRpLXhhbWFyaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4NDRcIjsgfVxuXG4ubWRpLXhhbWFyaW4tb3V0bGluZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjg0NVwiOyB9XG5cbi5tZGkteGFtbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3M1wiOyB9XG5cbi5tZGkteGJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVCOVwiOyB9XG5cbi5tZGkteGJveC1jb250cm9sbGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUJBXCI7IH1cblxuLm1kaS14Ym94LWNvbnRyb2xsZXItYmF0dGVyeS1hbGVydDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc0QVwiOyB9XG5cbi5tZGkteGJveC1jb250cm9sbGVyLWJhdHRlcnktZW1wdHk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NEJcIjsgfVxuXG4ubWRpLXhib3gtY29udHJvbGxlci1iYXR0ZXJ5LWZ1bGw6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3NENcIjsgfVxuXG4ubWRpLXhib3gtY29udHJvbGxlci1iYXR0ZXJ5LWxvdzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjc0RFwiOyB9XG5cbi5tZGkteGJveC1jb250cm9sbGVyLWJhdHRlcnktbWVkaXVtOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzRFXCI7IH1cblxuLm1kaS14Ym94LWNvbnRyb2xsZXItYmF0dGVyeS11bmtub3duOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNzRGXCI7IH1cblxuLm1kaS14Ym94LWNvbnRyb2xsZXItb2ZmOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUJCXCI7IH1cblxuLm1kaS14ZGE6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QkNcIjsgfVxuXG4ubWRpLXhpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY1QkRcIjsgfVxuXG4ubWRpLXhpbmctYm94OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUJFXCI7IH1cblxuLm1kaS14aW5nLWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVCRlwiOyB9XG5cbi5tZGkteG1sOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUMwXCI7IH1cblxuLm1kaS14bXBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGN0ZFXCI7IH1cblxuLm1kaS15YW1tZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY3ODhcIjsgfVxuXG4ubWRpLXllYXN0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUMxXCI7IH1cblxuLm1kaS15ZWxwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxGNUMyXCI7IH1cblxuLm1kaS15aW4teWFuZzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjY3RlwiOyB9XG5cbi5tZGkteW91dHViZS1jcmVhdG9yLXN0dWRpbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjg0NlwiOyB9XG5cbi5tZGkteW91dHViZS1nYW1pbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY4NDdcIjsgfVxuXG4ubWRpLXlvdXR1YmUtcGxheTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVDM1wiOyB9XG5cbi5tZGkteW91dHViZS10djpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjQ0OFwiOyB9XG5cbi5tZGktemlwLWJveDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRjVDNFwiOyB9XG5cbi5tZGktYmxhbms6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEY2OENcIjtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5tZGktMThweC5tZGktc2V0LCAubWRpLTE4cHgubWRpOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4ubWRpLTI0cHgubWRpLXNldCwgLm1kaS0yNHB4Lm1kaTpiZWZvcmUge1xuICBmb250LXNpemU6IDI0cHg7IH1cblxuLm1kaS0zNnB4Lm1kaS1zZXQsIC5tZGktMzZweC5tZGk6YmVmb3JlIHtcbiAgZm9udC1zaXplOiAzNnB4OyB9XG5cbi5tZGktNDhweC5tZGktc2V0LCAubWRpLTQ4cHgubWRpOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogNDhweDsgfVxuXG4ubWRpLWRhcms6YmVmb3JlIHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7IH1cblxuLm1kaS1kYXJrLm1kaS1pbmFjdGl2ZTpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI2KTsgfVxuXG4ubWRpLWxpZ2h0OmJlZm9yZSB7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG4ubWRpLWxpZ2h0Lm1kaS1pbmFjdGl2ZTpiZWZvcmUge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyB9XG5cbi5tZGktcm90YXRlLTQ1IHtcbiAgLypcbiAgICAgICAgLy8gTm90IGluY2x1ZGVkIGluIHByb2R1Y3Rpb25cbiAgICAgICAgJi5tZGktZmxpcC1oOmJlZm9yZSB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBIO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwSFwiO1xuICAgICAgICB9XG4gICAgICAgICYubWRpLWZsaXAtdjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcFY7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBWXCI7XG4gICAgICAgIH1cbiAgICAgICAgKi8gfVxuICAubWRpLXJvdGF0ZS00NTpiZWZvcmUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG5cbi5tZGktcm90YXRlLTkwIHtcbiAgLypcbiAgICAgICAgLy8gTm90IGluY2x1ZGVkIGluIHByb2R1Y3Rpb25cbiAgICAgICAgJi5tZGktZmxpcC1oOmJlZm9yZSB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBIO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwSFwiO1xuICAgICAgICB9XG4gICAgICAgICYubWRpLWZsaXAtdjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcFY7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBWXCI7XG4gICAgICAgIH1cbiAgICAgICAgKi8gfVxuICAubWRpLXJvdGF0ZS05MDpiZWZvcmUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG5cbi5tZGktcm90YXRlLTEzNSB7XG4gIC8qXG4gICAgICAgIC8vIE5vdCBpbmNsdWRlZCBpbiBwcm9kdWN0aW9uXG4gICAgICAgICYubWRpLWZsaXAtaDpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBIO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwSFwiO1xuICAgICAgICB9XG4gICAgICAgICYubWRpLWZsaXAtdjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDEzNWRlZyk7XG4gICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSByb3RhdGUoMTM1ZGVnKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcFY7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBWXCI7XG4gICAgICAgIH1cbiAgICAgICAgKi8gfVxuICAubWRpLXJvdGF0ZS0xMzU6YmVmb3JlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTsgfVxuXG4ubWRpLXJvdGF0ZS0xODAge1xuICAvKlxuICAgICAgICAvLyBOb3QgaW5jbHVkZWQgaW4gcHJvZHVjdGlvblxuICAgICAgICAmLm1kaS1mbGlwLWg6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgZmlsdGVyOiBGbGlwSDtcbiAgICAgICAgICAgIC1tcy1maWx0ZXI6IFwiRmxpcEhcIjtcbiAgICAgICAgfVxuICAgICAgICAmLm1kaS1mbGlwLXY6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoLTEpIHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBWO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwVlwiO1xuICAgICAgICB9XG4gICAgICAgICovIH1cbiAgLm1kaS1yb3RhdGUtMTgwOmJlZm9yZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLm1kaS1yb3RhdGUtMjI1IHtcbiAgLypcbiAgICAgICAgLy8gTm90IGluY2x1ZGVkIGluIHByb2R1Y3Rpb25cbiAgICAgICAgJi5tZGktZmxpcC1oOmJlZm9yZSB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMjI1ZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMjI1ZGVnKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcEg7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBIXCI7XG4gICAgICAgIH1cbiAgICAgICAgJi5tZGktZmxpcC12OmJlZm9yZSB7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKC0xKSByb3RhdGUoMjI1ZGVnKTtcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpIHJvdGF0ZSgyMjVkZWcpO1xuICAgICAgICAgICAgZmlsdGVyOiBGbGlwVjtcbiAgICAgICAgICAgIC1tcy1maWx0ZXI6IFwiRmxpcFZcIjtcbiAgICAgICAgfVxuICAgICAgICAqLyB9XG4gIC5tZGktcm90YXRlLTIyNTpiZWZvcmUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpOyB9XG5cbi5tZGktcm90YXRlLTI3MCB7XG4gIC8qXG4gICAgICAgIC8vIE5vdCBpbmNsdWRlZCBpbiBwcm9kdWN0aW9uXG4gICAgICAgICYubWRpLWZsaXAtaDpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDI3MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDI3MGRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBIO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwSFwiO1xuICAgICAgICB9XG4gICAgICAgICYubWRpLWZsaXAtdjpiZWZvcmUge1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDI3MGRlZyk7XG4gICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKC0xKSByb3RhdGUoMjcwZGVnKTtcbiAgICAgICAgICAgIGZpbHRlcjogRmxpcFY7XG4gICAgICAgICAgICAtbXMtZmlsdGVyOiBcIkZsaXBWXCI7XG4gICAgICAgIH1cbiAgICAgICAgKi8gfVxuICAubWRpLXJvdGF0ZS0yNzA6YmVmb3JlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsgfVxuXG4ubWRpLXJvdGF0ZS0zMTUge1xuICAvKlxuICAgICAgICAvLyBOb3QgaW5jbHVkZWQgaW4gcHJvZHVjdGlvblxuICAgICAgICAmLm1kaS1mbGlwLWg6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgzMTVkZWcpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgzMTVkZWcpO1xuICAgICAgICAgICAgZmlsdGVyOiBGbGlwSDtcbiAgICAgICAgICAgIC1tcy1maWx0ZXI6IFwiRmxpcEhcIjtcbiAgICAgICAgfVxuICAgICAgICAmLm1kaS1mbGlwLXY6YmVmb3JlIHtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoLTEpIHJvdGF0ZSgzMTVkZWcpO1xuICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWSgtMSkgcm90YXRlKDMxNWRlZyk7XG4gICAgICAgICAgICBmaWx0ZXI6IEZsaXBWO1xuICAgICAgICAgICAgLW1zLWZpbHRlcjogXCJGbGlwVlwiO1xuICAgICAgICB9XG4gICAgICAgICovIH1cbiAgLm1kaS1yb3RhdGUtMzE1OmJlZm9yZSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZyk7IH1cblxuLm1kaS1mbGlwLWg6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSk7XG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTtcbiAgZmlsdGVyOiBGbGlwSDtcbiAgLW1zLWZpbHRlcjogXCJGbGlwSFwiOyB9XG5cbi5tZGktZmxpcC12OmJlZm9yZSB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoLTEpO1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7XG4gIGZpbHRlcjogRmxpcFY7XG4gIC1tcy1maWx0ZXI6IFwiRmxpcFZcIjsgfVxuXG4ubWRpLXNwaW46YmVmb3JlIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IG1kaS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBtZGktc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7IH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIG1kaS1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1kaS1zcGluIHtcbiAgMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7IH0gfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1UaGluLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbi5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbi53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVRoaW4ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1UaGluLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90by1UaGluXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLVRoaW4uZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1UaGluLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1UaGluLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbi53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1UaGluLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVRoaW4uc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbkl0YWxpYy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLVRoaW5JdGFsaWMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVRoaW5JdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1UaGluSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVRoaW5JdGFsaWMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbkl0YWxpYy5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8tVGhpbkl0YWxpY1wiO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1UaGluSXRhbGljLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbkl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbkl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVRoaW5JdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tVGhpbkl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1UaGluSXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUxpZ2h0LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvLUxpZ2h0XCI7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUxpZ2h0LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUxpZ2h0LndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHQuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHRJdGFsaWMuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHRJdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8tTGlnaHRJdGFsaWNcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHRJdGFsaWMuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTGlnaHRJdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1MaWdodEl0YWxpYy5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1SZWd1bGFyLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhci5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhci50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1SZWd1bGFyLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90by1SZWd1bGFyXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXIuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1SZWd1bGFyLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1SZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhci53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXIuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhckl0YWxpYy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXJJdGFsaWMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXJJdGFsaWMud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1SZWd1bGFySXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXJJdGFsaWMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhckl0YWxpYy5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8tUmVndWxhckl0YWxpY1wiO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1SZWd1bGFySXRhbGljLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhckl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhckl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLVJlZ3VsYXJJdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tUmVndWxhckl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1SZWd1bGFySXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bS5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1NZWRpdW0uc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvLU1lZGl1bVwiO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1NZWRpdW0uZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1NZWRpdW0uZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1NZWRpdW0udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bUl0YWxpYy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bUl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtSXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bUl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1NZWRpdW1JdGFsaWMuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvLU1lZGl1bUl0YWxpY1wiO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1NZWRpdW1JdGFsaWMuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1NZWRpdW1JdGFsaWMuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bUl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLU1lZGl1bUl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1NZWRpdW1JdGFsaWMudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tTWVkaXVtSXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1JvYm90byc7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUJvbGQuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1Cb2xkLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJvbGQuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvLUJvbGRcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZC5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUJvbGQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZC5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1Cb2xkSXRhbGljLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZEl0YWxpYy5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZEl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJvbGRJdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZEl0YWxpYy50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkSXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90by1Cb2xkSXRhbGljXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUJvbGRJdGFsaWMuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1Cb2xkSXRhbGljLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkSXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQm9sZEl0YWxpYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1Cb2xkSXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJvbGRJdGFsaWMuc3ZnI1JvYm90b1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tQmxhY2suZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1CbGFjay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQmxhY2sud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJSb2JvdG8tQmxhY2tcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9Sb2JvdG8tQmxhY2suZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1CbGFjay5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9Sb2JvdG8tQmxhY2sud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFjay5zdmcjUm9ib3RvXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1CbGFja0l0YWxpYy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFja0l0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogOTAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90by1CbGFja0l0YWxpY1wiO1xuICBzcmM6IHVybChcImZvbnRzL1JvYm90by1CbGFja0l0YWxpYy5lb3RcIik7XG4gIHNyYzogdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcImZvbnRzL1JvYm90by1CbGFja0l0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvUm9ib3RvLUJsYWNrSXRhbGljLnN2ZyNSb2JvdG9cIikgZm9ybWF0KFwic3ZnXCIpOyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogUm9ib3RvLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDE2cHg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG5oMSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDM2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICBwYWRkaW5nLXRvcDogMjhweDtcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgbWFyZ2luOiAwO1xuICBjbGVhcjogYm90aDsgfVxuXG4uc3ViLWhlYWRsaW5lIHtcbiAgY29sb3I6ICNhYWE7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gIG1hcmdpbjogMDsgfVxuXG5oMiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBtYXJnaW4tdG9wOiAxOHB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY2xlYXI6IGJvdGg7IH1cblxuaDMge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMjZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgbWFyZ2luOiAwO1xuICBjbGVhcjogYm90aDsgfVxuXG5oNCB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgY2xlYXI6IGJvdGg7IH1cblxucCwgbGksIGRpdi5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDI4cHg7IH1cblxucCwgaWZyYW1lLCBkaXYuY29kZSB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuaWZyYW1lIHtcbiAgbWFyZ2luLXRvcDogOHB4OyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LDIzOCw4OCk7IH1cblxuZGl2LmNvZGUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9XG5cbmRpdi5jb2RlLCBwcmUuaGlnaGxpZ2h0IHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxua2JkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBtYXJnaW46IDBweCAzcHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gIGNvbG9yOiAjNDQ0ZDU2O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYmZjO1xuICBib3JkZXI6IHNvbGlkIDFweCAjYzZjYmQxO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjOTU5ZGE1O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwICM5NTlkYTU7IH1cblxuKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuYTpub3QoW3JvbGU9YnV0dG9uXSkge1xuICBjb2xvcjogcmdiKDMzLDE1MCwyNDMpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLmNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxNnB4O1xuICBmbGV4OiAxOyB9XG5cbnZpZGVvOjpjdWUge1xuICBvcGFjaXR5OiAwLjg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogODIwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogMTE3MHB4OyB9IH1cblxuaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTtcbiAgei1pbmRleDogMTAwMDsgfVxuICBoZWFkZXIgLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogNzJweDsgfVxuICAgICAgaGVhZGVyIC5jb250YWluZXIgPiBkaXYgLmxvZ290eXBlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwibWVkaWEvY2FsY2FwcC5zdmdcIiksIG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIHdpZHRoOiAxMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzNHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDsgfVxuICAgICAgaGVhZGVyIC5jb250YWluZXIgPiBkaXYgLmxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAzN3B4OyB9XG4gICAgICAgIGhlYWRlciAuY29udGFpbmVyID4gZGl2IC5saW5rcyBhIHtcbiAgICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIGhlaWdodDogNzJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogNzJweDtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgIHBhZGRpbmc6IDAgMThweDsgfVxuICAgICAgICAgIGhlYWRlciAuY29udGFpbmVyID4gZGl2IC5saW5rcyBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAubGlua3MgYTphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpOyB9XG4gICAgICAgICAgaGVhZGVyIC5jb250YWluZXIgPiBkaXYgLmxpbmtzIGEuYWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NWFlZjY7IH1cbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAubGlua3MgYSA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgdG9wOiAycHg7IH1cbiAgICAgICAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAubGlua3MgYSAubWRsLXJpcHBsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAgICAgaGVhZGVyIC5jb250YWluZXIgPiBkaXYgLnNwYWNlLWJlZm9yZS1zaWduLWluLWxpbmsge1xuICAgICAgICBmbGV4OiAxOyB9XG4gICAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAjbWVudS1idXR0b24tZm9yLXBob25lcyB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gICAgICBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAubWRsLW1lbnVfX2NvbnRhaW5lciB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cblxuYm9keTpub3QoLm5vLWZpeGVkLWhlYWRlcikgaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTsgfVxuXG5ib2R5Om5vdCgubm8tZml4ZWQtaGVhZGVyKSA+IC5jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogNzJweDsgfVxuXG5mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5saW5rcyB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAjbWVudS1idXR0b24tZm9yLXBob25lcyB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5jb250ZW50LXBhZ2UgaW1nLCAuY29udGVudC1wYWdlIHZpZGVvLCAuY29udGVudC1wYWdlIGZpZ3VyZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG5cbi5jb250ZW50LXBhZ2UgaW1nOm5vdCgubm8tc2hhZG93KSxcbi5jb250ZW50LXBhZ2UgdmlkZW86bm90KC5uby1zaGFkb3cpLFxuLmNvbnRlbnQtcGFnZSBmaWd1cmU6bm90KC5uby1zaGFkb3cpOm5vdCguc2ltcGxlKSB7XG4gIGJveC1zaGFkb3c6IDNweCA2cHggOHB4IDBweCAjY2NjOyB9XG5cbi5jb250ZW50LXBhZ2UgZmlndXJlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAuY29udGVudC1wYWdlIGZpZ3VyZTpub3QoLnNpbXBsZSkge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTsgfVxuICAuY29udGVudC1wYWdlIGZpZ3VyZS5zaW1wbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jb250ZW50LXBhZ2UgZmlndXJlIHByZSB7XG4gICAgbWFyZ2luOiAwOyB9XG5cbi5jb250ZW50LXBhZ2UgaDI6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBtYXJnaW4tdG9wOiAtODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmNvbnRlbnQtcGFnZSAuaG9yaXpvbnRhbC1pbWFnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cblxuLmNvbnRlbnQtcGFnZSBibG9ja3F1b3RlIHtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgI2NjYztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBtYXJnaW46IDEuNWVtIDEwcHg7XG4gIHBhZGRpbmctdG9wOiAwLjdlbTtcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgcXVvdGVzOiBcIuKAnFwiIFwi4oCdXCIgXCLigJhcIiBcIuKAmVwiOyB9XG4gIC5jb250ZW50LXBhZ2UgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgZm9udC1zaXplOiA1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDAuMWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC4yNWVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiAtMC40ZW07XG4gICAgbGVmdDogLTAuMzVlbTtcbiAgICB0b3A6IDAuMWVtOyB9XG4gIC5jb250ZW50LXBhZ2UgYmxvY2txdW90ZTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uY29udGVudC1wYWdlIGJsb2NrcXVvdGUgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgcmdiKDMzLDE1MCwyNDMpO1xuICBtYXJnaW46IDAuNWVtIDA7IH1cbiAgLmNvbnRlbnQtcGFnZSBibG9ja3F1b3RlIGJsb2NrcXVvdGUucGxhaW4ge1xuICAgIGJvcmRlci1jb2xvcjogI2NjYzsgfVxuICAuY29udGVudC1wYWdlIGJsb2NrcXVvdGUgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7IH1cblxuLmRhdGEtdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gIC5kYXRhLXRhYmxlIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7IH1cbiAgICAuZGF0YS10YWJsZSB0aCBpLm1kaSB7XG4gICAgICBmb250LXNpemU6IDIwcHg7IH1cbiAgLmRhdGEtdGFibGUgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICAuZGF0YS10YWJsZSB0ZDpsYXN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmRhdGEtdGFibGUgdHIuaW5kZW50IHRkOmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50LXBhZ2UgYmxvY2txdW90ZTpiZWZvcmUge1xuICAgIGxlZnQ6IC02MHB4O1xuICAgIHRvcDogMTJweDsgfVxuICAuY29udGVudC1wYWdlIC5ob3Jpem9udGFsLWltYWdlcyBhOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyNXB4OyB9XG4gIC5jb250ZW50LXBhZ2UgaW1nIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIC5jb250ZW50LXBhZ2UgLnNtYWxsLWltYWdlIHtcbiAgICB3aWR0aDogMjUwcHg7IH1cbiAgLmNvbnRlbnQtcGFnZSAuc21hbGwtaG9yaXpvbnRhbC1pbWFnZSB7XG4gICAgd2lkdGg6IDM5MHB4OyB9XG4gIC5jb250ZW50LXBhZ2UgLmltYWdlLTMyMHB4IHtcbiAgICB3aWR0aDogMzIwcHg7IH1cbiAgLmNvbnRlbnQtcGFnZSAubWVkaXVtLWltYWdlIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIC5jb250ZW50LXBhZ2UgLmxhcmdlLWltYWdlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY29udGVudC1wYWdlIC5kYXRhLXRhYmxlIHtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5jb250ZW50LXBhZ2UgLmRhdGEtdGFibGUgdGQge1xuICAgICAgcGFkZGluZy1yaWdodDogNDhweDsgfVxuICAgIC5jb250ZW50LXBhZ2UgLmRhdGEtdGFibGUgdGQ6bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4ucm9vdC1wYWdlIGhlYWRlciAuY29udGFpbmVyID4gZGl2IGEubG9nb3R5cGUge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJvb3QtcGFnZSAubWRsLWJ1dHRvbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgIGhlaWdodDogNDBweDsgfVxuICAucm9vdC1wYWdlIGhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDMwcHg7IH1cbiAgICAucm9vdC1wYWdlIGhlYWRlciAuY29udGFpbmVyID4gZGl2IGEubG9nb3R5cGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cbiAgICAucm9vdC1wYWdlIGhlYWRlciAuY29udGFpbmVyID4gZGl2IC5saW5rcyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAucm9vdC1wYWdlIGhlYWRlciAuY29udGFpbmVyID4gZGl2IC5zcGFjZS1iZXR3ZWVuLWxvZ290eXBlLWFuZC1saW5rcyB7XG4gICAgICBmbGV4OiAxOyB9XG4gICAgLnJvb3QtcGFnZSBoZWFkZXIgLmNvbnRhaW5lciA+IGRpdiAuc3BhY2UtYmVmb3JlLXNpZ24taW4tbGluayB7XG4gICAgICBmbGV4OiBub25lOyB9IH1cblxuLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC50ZXh0LWNvbHVtbiAuaW50cm9kdWN0b3J5LXRleHQge1xuICAgIHBhZGRpbmc6IDE2cHg7IH1cbiAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7IH1cbiAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IHAge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7IH1cbiAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IC5pbnRyb2R1Y3RvcnktYnV0dG9ucyB7XG4gICAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAgICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIC5pbnRyb2R1Y3RvcnktdGV4dCAuaW50cm9kdWN0b3J5LWJ1dHRvbnMgPiBkaXYgLm1kbC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuICAgICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIC5pbnRyb2R1Y3RvcnktdGV4dCAuaW50cm9kdWN0b3J5LWJ1dHRvbnMgPiBkaXY6bGFzdC1vZi10eXBlIC5tZGwtYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIC5pbnRyb2R1Y3RvcnktdGV4dCAuaW50cm9kdWN0b3J5LWJ1dHRvbnMgLmZpbmUtcHJpbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTRweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC5waG9uZS1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG4gICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnBob25lLWNvbHVtbiAucGhvbmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiA0cHg7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gOHB4KTtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC5waG9uZS1jb2x1bW4gLmlmcmFtZS1iYWNrZ3JvdW5kIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxOTQsMjQsOTEpO1xuICAgICAgdG9wOiAyLjklO1xuICAgICAgbGVmdDogNy4zJTtcbiAgICAgIHdpZHRoOiA4NiU7XG4gICAgICBoZWlnaHQ6IDk0LjElOyB9XG4gICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnBob25lLWNvbHVtbiBpZnJhbWUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgdG9wOiA2LjMlO1xuICAgICAgbGVmdDogNy4zJTtcbiAgICAgIHdpZHRoOiA4NiU7XG4gICAgICBoZWlnaHQ6IDkwLjclO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4OyB9XG4gICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxlZnQ6IC00NHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjVweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiA0MDBweDsgfVxuICAgICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDQ0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDU2cHg7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuICAgICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IC5pbnRyb2R1Y3RvcnktYnV0dG9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAzNnB4O1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAudGV4dC1jb2x1bW4gLmludHJvZHVjdG9yeS10ZXh0IC5pbnRyb2R1Y3RvcnktYnV0dG9ucyA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAgICAgICAgIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC50ZXh0LWNvbHVtbiAuaW50cm9kdWN0b3J5LXRleHQgLmludHJvZHVjdG9yeS1idXR0b25zID4gZGl2IC5tZGwtYnV0dG9uIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgICAgICAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIC5pbnRyb2R1Y3RvcnktdGV4dCAuaW50cm9kdWN0b3J5LWJ1dHRvbnMgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICAgIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC50ZXh0LWNvbHVtbiAuaW50cm9kdWN0b3J5LXRleHQgLmludHJvZHVjdG9yeS1idXR0b25zIC5maW5lLXByaW50IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB0b3A6IDA7IH1cbiAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAucGhvbmUtY29sdW1uIHtcbiAgICAgIGhlaWdodDogNjIwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAucGhvbmUtY29sdW1uICoge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDYwcHg7IH1cbiAgICAgIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC5waG9uZS1jb2x1bW4gLnBob25lIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDU4MHB4O1xuICAgICAgICB3aWR0aDogMjkwcHg7IH1cbiAgICAgIC5yb290LXBhZ2UgLmludHJvZHVjdG9yeS1zZWN0aW9uIC5waG9uZS1jb2x1bW4gLmlmcmFtZS1iYWNrZ3JvdW5kIHtcbiAgICAgICAgdG9wOiAxOHB4O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMjhweDtcbiAgICAgICAgd2lkdGg6IDI1NHB4O1xuICAgICAgICBoZWlnaHQ6IDU0NXB4OyB9XG4gICAgICAucm9vdC1wYWdlIC5pbnRyb2R1Y3Rvcnktc2VjdGlvbiAucGhvbmUtY29sdW1uIGlmcmFtZSB7XG4gICAgICAgIHRvcDogMzdweDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDI4cHg7XG4gICAgICAgIHdpZHRoOiAyNTRweDtcbiAgICAgICAgaGVpZ2h0OiA1MjZweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnJvb3QtcGFnZSAuaW50cm9kdWN0b3J5LXNlY3Rpb24gLnRleHQtY29sdW1uIHtcbiAgICBsZWZ0OiAtMzBweDsgfSB9XG5cbi5yb290LXBhZ2UgLmZlYXR1cmVzLXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAyMHB4OyB9XG4gIC5yb290LXBhZ2UgLmZlYXR1cmVzLXNlY3Rpb24gdWwge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfVxuICAgIC5yb290LXBhZ2UgLmZlYXR1cmVzLXNlY3Rpb24gdWwgbGkgLnRpdGxlIHtcbiAgICAgIGNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDI4cHg7XG4gICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gICAgICAucm9vdC1wYWdlIC5mZWF0dXJlcy1zZWN0aW9uIHVsIGxpIC50aXRsZSAuaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNTRweDtcbiAgICAgICAgY29sb3I6ICM2NjY7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvIDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAgICAgLnJvb3QtcGFnZSAuZmVhdHVyZXMtc2VjdGlvbiB1bCBsaSAudGl0bGUgLmljb24gc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMHB4OyB9XG4gICAgICAgICAgLnJvb3QtcGFnZSAuZmVhdHVyZXMtc2VjdGlvbiB1bCBsaSAudGl0bGUgLmljb24gc3BhbiBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IDU1cHg7IH1cbiAgICAucm9vdC1wYWdlIC5mZWF0dXJlcy1zZWN0aW9uIHVsIGxpIC50ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgcGFkZGluZzogMzBweCAxOXB4O1xuICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41NCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnJvb3QtcGFnZSAuZmVhdHVyZXMtc2VjdGlvbiAucmVpbmZvcmNpbmctc3RhdGVtZW50IHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJvb3QtcGFnZSAuZmVhdHVyZXMtc2VjdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cblxuLnJvb3QtcGFnZSAuY2FsY2FwcC1jcmVhdG9yLXNlY3Rpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7IH1cbiAgLnJvb3QtcGFnZSAuY2FsY2FwcC1jcmVhdG9yLXNlY3Rpb24gLmNhbGNhcHAtY3JlYXRvci1jb250YWluZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gICAgLnJvb3QtcGFnZSAuY2FsY2FwcC1jcmVhdG9yLXNlY3Rpb24gLmNhbGNhcHAtY3JlYXRvci1jb250YWluZXIgaDEge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4OyB9XG4gIC5yb290LXBhZ2UgLmNhbGNhcHAtY3JlYXRvci1zZWN0aW9uIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7IH1cbiAgLnJvb3QtcGFnZSAuY2FsY2FwcC1jcmVhdG9yLXNlY3Rpb24gaW1nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC5yb290LXBhZ2UgLmNhbGNhcHAtY3JlYXRvci1zZWN0aW9uIC52aXNpYmxlLXNtYWxsLWRldmljZS1wb3J0cmFpdC1vcmllbnRhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIC5yb290LXBhZ2UgLmNhbGNhcHAtY3JlYXRvci1zZWN0aW9uIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJvb3QtcGFnZSAuY2FsY2FwcC1jcmVhdG9yLXNlY3Rpb24gLmNhbGNhcHAtY3JlYXRvci1jb250YWluZXIge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogNTIwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNzY4cHgpIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gIC5yb290LXBhZ2UgLmNhbGNhcHAtY3JlYXRvci1zZWN0aW9uIC52aXNpYmxlLXNtYWxsLWRldmljZS1wb3J0cmFpdC1vcmllbnRhdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDsgfSB9XG5cbi5yb290LXBhZ2UgLmxhc3Qtc2VjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigzMywxNTAsMjQzKTtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnJvb3QtcGFnZSAubGFzdC1zZWN0aW9uIC5sYXN0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDsgfVxuICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDsgfVxuICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmJ1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDsgfVxuICAgIC5yb290LXBhZ2UgLmxhc3Qtc2VjdGlvbiAuYnV0dG9ucyA+IGRpdiAubWRsLWJ1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbiAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmJ1dHRvbnMgPiBkaXY6bGFzdC1vZi10eXBlIC5tZGwtYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnJvb3QtcGFnZSAubGFzdC1zZWN0aW9uIC5zb2NpYWwtbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi10b3A6IDM1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLnNvY2lhbC1saW5rcyBhIHtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMzhweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gZm9vdGVyIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gZm9vdGVyIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gZm9vdGVyIC5jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5yb290LXBhZ2UgLmxhc3Qtc2VjdGlvbiBidXR0b24ge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmxhc3QtY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDU4MHB4OyB9XG4gIC5yb290LXBhZ2UgLmxhc3Qtc2VjdGlvbiAuY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG4gIC5yb290LXBhZ2UgLmxhc3Qtc2VjdGlvbiAuYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiAzNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmJ1dHRvbnMgPiBkaXYge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OyB9XG4gICAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmJ1dHRvbnMgPiBkaXYgLm1kbC1idXR0b24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgICAucm9vdC1wYWdlIC5sYXN0LXNlY3Rpb24gLmJ1dHRvbnMgPiBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi50aGFua3MtcGFnZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAudGhhbmtzLXBhZ2UgZGl2IHtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgLnRoYW5rcy1wYWdlIC5jZW50ZXItYmxvY2sge1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gIC50aGFua3MtcGFnZSAjd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDMzLDE1MCwyNDMpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAudGhhbmtzLXBhZ2UgI2NlbGwge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAudGhhbmtzLXBhZ2UgI2NvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cbiAgLnRoYW5rcy1wYWdlIGgxIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7IH1cbiAgLnRoYW5rcy1wYWdlIGEge1xuICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAudGhhbmtzLXBhZ2UgI2NvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC50aGFua3MtcGFnZSAjY29udGVudCBoMSB7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDsgfVxuICAgIC50aGFua3MtcGFnZSAjY29udGVudCBwIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IH1cbiAgLnRoYW5rcy1wYWdlIC5zb2NpYWwtbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiA1NXB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2MHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnRoYW5rcy1wYWdlIC5zb2NpYWwtbGlua3MgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgLnRoYW5rcy1wYWdlIGZvb3RlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICByaWdodDogMTBweDtcbiAgICBib3R0b206IDdweDsgfVxuICAudGhhbmtzLXBhZ2UgLmxvZ28ge1xuICAgIGJhY2tncm91bmQ6IHVybChtZWRpYS9jYWxjYXBwLnN2Zykgbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJTtcbiAgICB3aWR0aDogMzQwcHg7XG4gICAgaGVpZ2h0OiA4OHB4OyB9XG5cbi5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAubmF2aWdhdGlvbiB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4OyB9XG4gIC5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAubmF2aWdhdGlvbiB1bC5vdXRlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgLmxlYXJuLXBhZ2UgLm1haW4tY29udGFpbmVyIC5uYXZpZ2F0aW9uIHVsLm91dGVyIGEge1xuICAgICAgY29sb3I6IGJsYWNrOyB9XG4gICAgICAubGVhcm4tcGFnZSAubWFpbi1jb250YWluZXIgLm5hdmlnYXRpb24gdWwub3V0ZXIgYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiByZ2IoMzMsMTUwLDI0Myk7IH1cbiAgLmxlYXJuLXBhZ2UgLm1haW4tY29udGFpbmVyIC5uYXZpZ2F0aW9uIHVsIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMzJweDsgfVxuICAgIC5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAubmF2aWdhdGlvbiB1bCBsaS5hY3RpdmUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICAubGVhcm4tcGFnZSAubWFpbi1jb250YWluZXIgLm5hdmlnYXRpb24gdWwgbGkudG9wLWxldmVsLWNob2ljZSB7XG4gICAgICBwYWRkaW5nLXRvcDogOHB4OyB9XG4gICAgLmxlYXJuLXBhZ2UgLm1haW4tY29udGFpbmVyIC5uYXZpZ2F0aW9uIHVsIGxpLnNlcnZpY2VzIGkubWRpIHtcbiAgICAgIGNvbG9yOiAjYWFhOyB9XG5cbi5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAuc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmb250LXNpemU6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNnB4OyB9XG4gIC5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAuc29jaWFsLWxpbmtzIGRpdiB7XG4gICAgbWFyZ2luOiAwIDJweDsgfVxuICAgIC5sZWFybi1wYWdlIC5tYWluLWNvbnRhaW5lciAuc29jaWFsLWxpbmtzIGRpdiBhIHtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmxlYXJuLXBhZ2UgLm1haW4tY29udGFpbmVyIC5zb2NpYWwtbGlua3MgZGl2OmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubGVhcm4tcGFnZSAubWFpbi1jb250YWluZXIgLnNvY2lhbC1saW5rcyBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxlYXJuLXBhZ2UgZGl2Lm5hdmlnYXRpb24ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgICB0b3A6IDcycHg7XG4gICAgd2lkdGg6IDIzMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgLmxlYXJuLXBhZ2UgZGl2LmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDI3MHB4O1xuICAgIG1hcmdpbi1yaWdodDogMzBweDsgfVxuICAubGVhcm4tcGFnZSAuc29jaWFsLWxpbmtzIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH0gfVxuXG4uYmxvZy1pbmRleC1wYWdlIC5leGNlcnB0IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi5ibG9nLWluZGV4LXBhZ2UgLmNvbnRhaW5lciA+IC5tZGwtZ3JpZCB7XG4gIG1hcmdpbi10b3A6IDQwcHg7IH1cblxuLmJsb2ctaW5kZXgtcGFnZSAucGFnaW5hdGlvbiB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4uYmxvZy1pbmRleC1wYWdlIC5zaWRlYmFyIGgxIHtcbiAgcGFkZGluZy10b3A6IDRweDsgfVxuXG4uYmxvZy1wb3N0LXBhZ2UgaDEge1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbi5ibG9nLXBvc3QtcGFnZSAuZXhjZXJwdCB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICM2NjY7XG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgcmdiKDE5NCwyNCw5MSk7XG4gIHBhZGRpbmctbGVmdDogMjVweDsgfVxuXG4uYmxvZy1wb3N0LXBhZ2UgLmNvbnRhaW5lciA+IC5tZGwtZ3JpZCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cblxuLmJsb2ctcG9zdC1wYWdlIGhyIHtcbiAgbWFyZ2luLXRvcDogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiBub25lOyB9XG4gIC5ibG9nLXBvc3QtcGFnZSBocjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiLi4uXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLjZlbTtcbiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjY4KTsgfVxuXG4uYmxvZy1wYWdlIHVsLnBvc3QtbGlzdCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5ibG9nLXBhZ2UgdWwucG9zdC1saXN0IGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAuYmxvZy1wYWdlIHVsLnBvc3QtbGlzdCBoMiBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBmb250LXNpemU6IDM0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gIC5ibG9nLXBhZ2UgdWwucG9zdC1saXN0IC5kYXRlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAuYmxvZy1wYWdlIHVsLnBvc3QtbGlzdCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuXG4uYmxvZy1wYWdlIC5kYXRlLWNvbnRhaW5lciB0aW1lIHtcbiAgY29sb3I6ICM4ODg7IH1cblxuLmJsb2ctcGFnZSAubWRsLWJ1dHRvbiBhIHtcbiAgY29sb3I6IGJsYWNrOyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbmF2aWdhdGlvbiB7XG4gIHBhZGRpbmctdG9wOiA1MHB4O1xuICBjbGVhcjogYm90aDsgfVxuICAuYmxvZy1wYWdlIC5wb3N0LW5hdmlnYXRpb24gYTpudGgtY2hpbGQoMSkge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5ibG9nLXBhZ2UgLnBvc3QtbmF2aWdhdGlvbiBhOm50aC1jaGlsZCgyKSB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi5ibG9nLXBhZ2UgLnNpZGViYXIgaDEge1xuICBmb250LXNpemU6IDI4cHg7IH1cblxuLmJsb2ctcGFnZSAuc2lkZWJhciBoMiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbWFyZ2luLXRvcDogNDBweDsgfVxuXG4uYmxvZy1wYWdlIC5zaWRlYmFyIHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDA7IH1cblxuLmJsb2ctcGFnZSAuc2lkZWJhciAuc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICBmb250LXNpemU6IDQ0cHg7XG4gIGxpbmUtaGVpZ2h0OiA1MHB4OyB9XG4gIC5ibG9nLXBhZ2UgLnNpZGViYXIgLnNvY2lhbC1saW5rcyBkaXYge1xuICAgIG1hcmdpbjogMCA0cHg7IH1cbiAgICAuYmxvZy1wYWdlIC5zaWRlYmFyIC5zb2NpYWwtbGlua3MgZGl2IGEge1xuICAgICAgY29sb3I6IHJnYigzMywxNTAsMjQzKTsgfVxuICAgIC5ibG9nLXBhZ2UgLnNpZGViYXIgLnNvY2lhbC1saW5rcyBkaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5ibG9nLXBhZ2UgLnNpZGViYXIgLnNvY2lhbC1saW5rcyBkaXY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmJsb2ctcG9zdC1wYWdlID4gLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMHZ3OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5ibG9nLXBhZ2UgLm1kbC1ncmlkID4gdWwge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7IH1cbiAgLmJsb2ctcGFnZSAucG9zdC1saXN0LCAuYmxvZy1wYWdlIGFydGljbGUge1xuICAgIHBhZGRpbmctcmlnaHQ6IDUwcHg7IH1cbiAgLmJsb2ctcGFnZSAuc2lkZWJhciB7XG4gICAgcGFkZGluZzogMTZweDsgfVxuICAuYmxvZy1wb3N0LXBhZ2UgLmV4Y2VycHQge1xuICAgIHBhZGRpbmctbGVmdDogNTBweDsgfSB9XG5cbi5wcmljaW5nLXBhZ2UgLmNvbnRhaW5lci5tYWluIGRpdiB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxNnB4OyB9XG5cbi5wcmljaW5nLXBhZ2UgLmNvbnRhaW5lci5tYWluIC5wcmljZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyMzYsNjQsMTIyKTtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWF4LXdpZHRoOiAzMzBweDtcbiAgbWluLXdpZHRoOiAyNTBweDtcbiAgd2lkdGg6IGF1dG87IH1cbiAgLnByaWNpbmctcGFnZSAuY29udGFpbmVyLm1haW4gLnByaWNlLCAucHJpY2luZy1wYWdlIC5jb250YWluZXIubWFpbiAucHJpY2UgKiB7XG4gICAgY29sb3I6IHdoaXRlOyB9XG4gIC5wcmljaW5nLXBhZ2UgLmNvbnRhaW5lci5tYWluIC5wcmljZSBoMSB7XG4gICAgZm9udC1zaXplOiA2MHB4OyB9XG4gIC5wcmljaW5nLXBhZ2UgLmNvbnRhaW5lci5tYWluIC5wcmljZSAucXVhbGlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTVweDsgfVxuXG4ucHJpY2luZy1wYWdlIC5jb250YWluZXIubWFpbiAudGV4dC1ib2R5IHtcbiAgbWFyZ2luLXRvcDogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBtYXgtd2lkdGg6IDUwMHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJpY2luZy1wYWdlIC5jb250YWluZXIubWFpbiAucHJpY2Uge1xuICAgIG1hcmdpbi10b3A6IDgwcHg7IH0gfVxuXG4ucHJpY2luZy1wcmV2aWV3LXBhZ2UgPiAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4ucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5pbmZvcm1hdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMzRweDtcbiAgbWFyZ2luLXRvcDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0Z3JheTtcbiAgcGFkZGluZzogMjBweCAwOyB9XG5cbi5wcmljaW5nLXByZXZpZXctcGFnZSA+IC5jb250YWluZXIgPiBoMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYm94ZXMuYXBwLXR5cGUge1xuICAgIG1heC13aWR0aDogOTUwcHg7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogbm9ybWFsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDE7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgcGFkZGluZy10b3A6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTAsMjUwLDI1MCk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYm94Lmhhcy1mb290ZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYm94IC5pY29uIHtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDQ2cHg7IH1cbiAgLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3ggaDEge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3ggdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmJveCB1bCBsaSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4gICAgLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3ggdWwgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmJveCB1bCBsaS5zZXBhcmF0b3Ige1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7IH1cbiAgLnByaWNpbmctcHJldmlldy1wYWdlIC5ib3ggPiBkaXYsIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYm94IHVsIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmJveCAuYmlsbGVkLWFubnVhbGx5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYm94IC5mb290ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDUycHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmJveCAuZm9vdGVyID4gZGl2IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5hcHAtdHlwZSAuYm94IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wcmljaW5nLXByZXZpZXctcGFnZSAuYXBwLXR5cGUuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE5NywxNyw5OCk7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmFwcC10eXBlLmFjdGl2ZSAuZm9vdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5hcHAtdHlwZSAuZm9vdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUycHgpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMtY29udGFpbmVyIC5wYXktYW5udWFsbHktc3dpdGNoLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICAgLnByaWNpbmctcHJldmlldy1wYWdlIC5wbGFucy1jb250YWluZXIgLnBheS1hbm51YWxseS1zd2l0Y2gtY29udGFpbmVyIC5tZGwtc3dpdGNoX19sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLnByaWNpbmctcHJldmlldy1wYWdlIC5wbGFucy1jb250YWluZXIgLm51bWJlci1vZi11c2VycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjBweCAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgbGlnaHRncmF5O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGdyYXk7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zLWNvbnRhaW5lciAubnVtYmVyLW9mLXVzZXJzIGRpdi5tYWluIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zLWNvbnRhaW5lciAubnVtYmVyLW9mLXVzZXJzIC5jYXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zLWNvbnRhaW5lciAubnVtYmVyLW9mLXVzZXJzIGlucHV0IHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICAgIHdpZHRoOiA5MHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgfVxuICAgICAgLnByaWNpbmctcHJldmlldy1wYWdlIC5wbGFucy1jb250YWluZXIgLm51bWJlci1vZi11c2VycyBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgLnByaWNpbmctcHJldmlldy1wYWdlIC5wbGFucy1jb250YWluZXIgLm51bWJlci1vZi11c2VycyBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMtY29udGFpbmVyIC5udW1iZXItb2YtdXNlcnMgY2FsY2FwcC1zdGVwcGVyIGJ1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBtaW4td2lkdGg6IDM2cHg7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zLWNvbnRhaW5lciAubnVtYmVyLW9mLXVzZXJzIGNhbGNhcHAtc3RlcHBlciBidXR0b24gaS5tZGkge1xuICAgICAgICBsaW5lLWhlaWdodDogMTBweDsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMtY29udGFpbmVyIC5udW1iZXItb2YtdXNlcnMgZGl2Lm1hbnktdXNlcnMge1xuICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgPiBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgLmJveGVzIC5ib3gucG9wdWxhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI2MzIzODtcbiAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zIC5ib3hlcyAuYm94LnBvcHVsYXIgLmhlYWRlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogNDZweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGNvbG9yOiBsaWdodGdyYXk7XG4gICAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiA1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLnByaWNpbmctcHJldmlldy1wYWdlIC5wbGFucyAuYm94ZXMgLmJveC5wb3B1bGFyIGxpLnNlcGFyYXRvciB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgLmZvb3RlciB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcDogbm9uZTsgfVxuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zIC5wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgLnByaWNlIC5hbW91bnQge1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zIC5wcmljZSAucXVhbGlmaWVyIHtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogNHB4OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgLmVudGVycHJpc2UtY29udGFjdC11cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSAucGxhbnMgLmVudGVycHJpc2UtY29udGFjdC11cyAubGFiZWwge1xuICAgICAgZm9udC1zaXplOiAzOHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zIC5lbnRlcnByaXNlLWNvbnRhY3QtdXMgLmVtYWlsIHtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgbWFyZ2luLXRvcDogOHB4OyB9XG4gICAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnBsYW5zIC5lbnRlcnByaXNlLWNvbnRhY3QtdXMgLmVtYWlsIGEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4ucHJpY2luZy1wcmV2aWV3LXBhZ2UuZnVsbHktbG9hZGVkIC5hcHAtdHlwZSAuZm9vdGVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlLmZ1bGx5LWxvYWRlZCAuYm94IHVsIGxpIHtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuMTVzIGVhc2UtaW47IH1cblxuLnByaWNpbmctcHJldmlldy1wYWdlIC5xdWVzdGlvbnMgPiAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnF1ZXN0aW9ucyA+IC5jb250YWluZXIgaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgPiAuY29udGFpbmVyIC5ib3hlcyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSA+IC5jb250YWluZXIgLmJveGVzIC5ib3gge1xuICAgICAgbWFyZ2luOiAxNHB4OyB9XG4gICAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgPiAuY29udGFpbmVyIC5ib3hlcyAuYm94LnN0YXJ0ZXIgdWwge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMnB4OyB9XG4gICAgICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSA+IC5jb250YWluZXIgLmJveGVzIC5ib3guc3RhcnRlciB1bCBsaS5zZXBhcmF0b3Ige1xuICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA3cHgpOyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSA+IC5jb250YWluZXIgLmFwcC10eXBlIGxpLmFkZGl0aW9uYWwtdXNlcnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cbiAgLnByaWNpbmctcHJldmlldy1wYWdlID4gLmNvbnRhaW5lciAucGxhbnMtY29udGFpbmVyIC5udW1iZXItb2YtdXNlcnMge1xuICAgIHBhZGRpbmc6IDIwcHggMzBweDtcbiAgICBtYXgtd2lkdGg6IDMwNXB4OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSA+IC5jb250YWluZXIgLnBsYW5zIC5ib3g6bm90KC5wb3B1bGFyKSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDsgfVxuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnF1ZXN0aW9ucyA+IC5jb250YWluZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLnF1ZXN0aW9ucyA+IC5jb250YWluZXIgLmNvbHVtbjpudGgtY2hpbGQoMSkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0MHB4OyB9XG4gICAgLnByaWNpbmctcHJldmlldy1wYWdlIC5xdWVzdGlvbnMgPiAuY29udGFpbmVyIC5jb2x1bW46bnRoLWNoaWxkKDIpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgPiAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMjRweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmJveCB7XG4gICAgbWluLXdpZHRoOiAyMTdweDtcbiAgICBtYXgtd2lkdGg6IDIxN3B4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAucHJpY2luZy1wcmV2aWV3LXBhZ2UgLmFwcC10eXBlIC5ib3gge1xuICAgIG1pbi13aWR0aDogMjg4cHg7XG4gICAgbWF4LXdpZHRoOiAyODhweDsgfVxuICAgIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYXBwLXR5cGUgLmJveCB1bCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1MHB4OyB9XG4gIC5wcmljaW5nLXByZXZpZXctcGFnZSAuYXBwLXR5cGUgLnBsYW5zIC5ib3gge1xuICAgIG1pbi13aWR0aDogMjM1cHg7XG4gICAgbWF4LXdpZHRoOiAyMzVweDsgfSB9XG5cbi5hYm91dC1wYWdlIC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uYWJvdXQtcGFnZSAuaW5uZXItY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA4MDBweDsgfVxuXG4udW5zdWJzY3JpYmUtcGFnZSA+IC5jb250YWluZXIge1xuICB3aWR0aDogNjUwcHg7IH1cblxuLnVuc3Vic2NyaWJlLXBhZ2UgLm1kbC10ZXh0ZmllbGQge1xuICB3aWR0aDogMTAwJTsgfVxuXG4udW5zdWJzY3JpYmUtcGFnZSAuZmluZS1wcmludCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHg7IH1cblxuLnVuc3Vic2NyaWJlLXBhZ2UgLnNlbGVjdC1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XG4gIC51bnN1YnNjcmliZS1wYWdlIC5zZWxlY3QtY29udGFpbmVyIHNlbGVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG5cbi51bnN1YnNjcmliZS1wYWdlIC50ZXh0YXJlYS1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4OyB9XG4iXX0= */