/*!
Video.js Default Styles (http://videojs.com)
Version 4.12.5
Create your own skin at http://designer.videojs.com
*/
/* SKIN
================================================================================
The main class name for all skin-specific styles. To make your own skin,
replace all occurrences of 'vjs-default-skin' with a new name. Then add your new
skin name to your video tag instead of the default skin.
e.g. <video class="video-js my-skin-name">
*/
.vjs-default-skin {
  color: #cccccc; }

/* Custom Icon Font
--------------------------------------------------------------------------------
The control icons are from a custom font. Each icon corresponds to a character
(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons.
*/
@font-face {
  font-family: 'VideoJS';
  font-weight: normal;
  font-style: normal; }

/* Base UI Component Classes
--------------------------------------------------------------------------------
*/
/* Slider - used for Volume bar and Seek bar */
.vjs-default-skin .vjs-slider {
  /* Replace browser focus highlight with handle highlight */
  outline: 0;
  position: relative;
  cursor: pointer;
  padding: 0;
  /* background-color-with-alpha */
  background-color: #333333;
  background-color: rgba(51, 51, 51, 0.9); }

.vjs-default-skin .vjs-slider:focus {
  /* box-shadow */
  -webkit-box-shadow: 0 0 2em #ffffff;
  -moz-box-shadow: 0 0 2em #ffffff;
  box-shadow: 0 0 2em #ffffff; }

.vjs-default-skin .vjs-slider-handle {
  position: absolute;
  /* Needed for IE6 */
  left: 0;
  top: 0; }

.vjs-default-skin .vjs-slider-handle:before {
  content: "\e009";
  font-family: VideoJS;
  font-size: 1em;
  line-height: 1;
  text-align: center;
  text-shadow: 0em 0em 1em #fff;
  position: absolute;
  top: 0;
  left: 0;
  /* Rotate the square icon to make a diamond */
  /* transform */
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg); }

/* Control Bar
--------------------------------------------------------------------------------
The default control bar that is a container for most of the controls.
*/
.vjs-default-skin .vjs-control-bar {
  /* Start hidden */
  display: none;
  position: absolute;
  /* Place control bar at the bottom of the player box/video.
     If you want more margin below the control bar, add more height. */
  bottom: 0;
  /* Use left/right to stretch to 100% width of player div */
  left: 0;
  right: 0;
  /* Height includes any margin you want above or below control items */
  height: 3.0em;
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7); }

/* Show the control bar only once the video has started playing */
.vjs-default-skin.vjs-has-started .vjs-control-bar {
  display: block;
  /* Visibility needed to make sure things hide in older browsers too. */
  visibility: visible;
  opacity: 1;
  /* transition */
  -webkit-transition: visibility 0.1s, opacity 0.1s;
  -moz-transition: visibility 0.1s, opacity 0.1s;
  -o-transition: visibility 0.1s, opacity 0.1s;
  transition: visibility 0.1s, opacity 0.1s; }

/* Hide the control bar when the video is playing and the user is inactive  */
.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  display: block;
  visibility: hidden;
  opacity: 0;
  /* transition */
  -webkit-transition: visibility 1s, opacity 1s;
  -moz-transition: visibility 1s, opacity 1s;
  -o-transition: visibility 1s, opacity 1s;
  transition: visibility 1s, opacity 1s; }

.vjs-default-skin.vjs-controls-disabled .vjs-control-bar {
  display: none; }

.vjs-default-skin.vjs-using-native-controls .vjs-control-bar {
  display: none; }

/* The control bar shouldn't show after an error */
.vjs-default-skin.vjs-error .vjs-control-bar {
  display: none; }

/* Don't hide the control bar if it's audio */
.vjs-audio.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  opacity: 1;
  visibility: visible; }

/* IE8 is flakey with fonts, and you have to change the actual content to force
fonts to show/hide properly.
  - "\9" IE8 hack didn't work for this
  - Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
*/
@media \0screen {
  .vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
    content: ""; } }

/* General styles for individual controls. */
.vjs-default-skin .vjs-control {
  outline: none;
  position: relative;
  float: left;
  text-align: center;
  margin: 0;
  padding: 0;
  height: 3.0em;
  width: 4em; }

/* Font button icons */
.vjs-default-skin .vjs-control:before {
  font-family: VideoJS;
  font-size: 1.5em;
  line-height: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); }

/* Replacement for focus outline */
.vjs-default-skin .vjs-control:focus:before,
.vjs-default-skin .vjs-control:hover:before {
  text-shadow: 0em 0em 1em #ffffff; }

.vjs-default-skin .vjs-control:focus {
  /*  outline: 0; */
  /* keyboard-only users cannot see the focus on several of the UI elements when
  this is set to 0 */ }

/* Hide control text visually, but have it available for screenreaders */
.vjs-default-skin .vjs-control-text {
  /* hide-visually */
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/* Play/Pause
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-play-control {
  width: 5em;
  cursor: pointer; }

.vjs-default-skin .vjs-play-control:before {
  content: "\e001"; }

.vjs-default-skin.vjs-playing .vjs-play-control:before {
  content: "\e002"; }

/* Playback toggle
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-playback-rate .vjs-playback-rate-value {
  font-size: 1.5em;
  line-height: 2;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); }

.vjs-default-skin .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content {
  width: 4em;
  left: -2em;
  list-style: none; }

/* Volume/Mute
-------------------------------------------------------------------------------- */
.vjs-default-skin .vjs-mute-control,
.vjs-default-skin .vjs-volume-menu-button {
  cursor: pointer;
  float: right; }

.vjs-default-skin .vjs-mute-control:before,
.vjs-default-skin .vjs-volume-menu-button:before {
  content: "\e006"; }

.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
  content: "\e003"; }

.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
  content: "\e004"; }

.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
  content: "\e005"; }

.vjs-default-skin .vjs-volume-control {
  width: 5em;
  float: right; }

.vjs-default-skin .vjs-volume-bar {
  width: 5em;
  height: 0.6em;
  margin: 1.1em auto 0; }

.vjs-default-skin .vjs-volume-level {
  position: absolute;
  top: 0;
  left: 0;
  height: 0.5em;
  /* assuming volume starts at 1.0 */
  width: 100%;
  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat; }

.vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
  width: 0.5em;
  height: 0.5em;
  /* Assumes volume starts at 1.0. If you change the size of the
     handle relative to the volume bar, you'll need to update this value
     too. */
  left: 4.5em; }

.vjs-default-skin .vjs-volume-handle:before {
  font-size: 0.9em;
  top: -0.2em;
  left: -0.2em;
  width: 1em;
  height: 1em; }

/* The volume menu button is like menu buttons (captions/subtitles) but works
    a little differently. It needs to be possible to tab to the volume slider
    without hitting space bar on the menu button. To do this we're not using
    display:none to hide the slider menu by default, and instead setting the
    width and height to zero. */
.vjs-default-skin .vjs-volume-menu-button .vjs-menu {
  display: block;
  width: 0;
  height: 0;
  border-top-color: transparent; }

.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
  height: 0;
  width: 0; }

.vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu,
.vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing {
  border-top-color: rgba(7, 40, 50, 0.5);
  /* Same as ul background */ }

.vjs-default-skin .vjs-volume-menu-button:hover .vjs-menu .vjs-menu-content,
.vjs-default-skin .vjs-volume-menu-button .vjs-menu.vjs-lock-showing .vjs-menu-content {
  height: 2.9em;
  width: 10em; }

/* Progress
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-progress-control {
  position: absolute;
  left: 0;
  right: 0;
  width: auto;
  font-size: 0.3em;
  height: 1em;
  /* Set above the rest of the controls. */
  top: -1em;
  /* Shrink the bar slower than it grows. */
  /* transition */
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  transition: all 0.4s; }

/* On hover, make the progress bar grow to something that's more clickable.
    This simply changes the overall font for the progress bar, and this
    updates both the em-based widths and heights, as wells as the icon font */
.vjs-default-skin:hover .vjs-progress-control {
  font-size: .9em;
  /* Even though we're not changing the top/height, we need to include them in
      the transition so they're handled correctly. */
  /* transition */
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s; }

/* Box containing play and load progresses. Also acts as seek scrubber. */
.vjs-default-skin .vjs-progress-holder {
  height: 100%; }

/* Progress Bars */
.vjs-default-skin .vjs-progress-holder .vjs-play-progress,
.vjs-default-skin .vjs-progress-holder .vjs-load-progress,
.vjs-default-skin .vjs-progress-holder .vjs-load-progress div {
  position: absolute;
  display: block;
  height: 100%;
  margin: 0;
  padding: 0;
  /* updated by javascript during playback */
  width: 0;
  /* Needed for IE6 */
  left: 0;
  top: 0; }

.vjs-default-skin .vjs-play-progress {
  /*
    Using a data URI to create the white diagonal lines with a transparent
      background. Surprisingly works in IE8.
      Created using http://www.patternify.com
    Changing the first color value will change the bar color.
    Also using a paralax effect to make the lines move backwards.
      The -50% left position makes that happen.
  */
  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat; }

.vjs-default-skin .vjs-load-progress {
  background: #646464;
  background: rgba(255, 255, 255, 0.2); }

/* there are child elements of the load progress bar that represent the
   specific time ranges that have been buffered */
.vjs-default-skin .vjs-load-progress div {
  background: #787878;
  background: rgba(255, 255, 255, 0.1); }

.vjs-default-skin .vjs-seek-handle {
  width: 1.5em;
  height: 100%; }

.vjs-default-skin .vjs-seek-handle:before {
  padding-top: 0.1em; }

/* Live Mode
--------------------------------------------------------------------------------
*/
.vjs-default-skin.vjs-live .vjs-time-controls,
.vjs-default-skin.vjs-live .vjs-time-divider,
.vjs-default-skin.vjs-live .vjs-progress-control {
  display: none; }

.vjs-default-skin.vjs-live .vjs-live-display {
  display: block; }

/* Live Display
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-live-display {
  display: none;
  font-size: 1em;
  line-height: 3em; }

/* Time Display
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-time-controls {
  font-size: 1em;
  /* Align vertically by making the line height the same as the control bar */
  line-height: 3em; }

.vjs-default-skin .vjs-current-time {
  float: left; }

.vjs-default-skin .vjs-duration {
  float: left; }

/* Remaining time is in the HTML, but not included in default design */
.vjs-default-skin .vjs-remaining-time {
  display: none;
  float: left; }

.vjs-time-divider {
  float: left;
  line-height: 3em; }

/* Fullscreen
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-fullscreen-control {
  width: 3.8em;
  cursor: pointer;
  float: right; }

.vjs-default-skin .vjs-fullscreen-control:before {
  content: "\e000"; }

/* Switch to the exit icon when the player is in fullscreen */
.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
  content: "\e00b"; }

/* Big Play Button (play button at start)
--------------------------------------------------------------------------------
Positioning of the play button in the center or other corners can be done more
easily in the skin designer. http://designer.videojs.com/
*/
.vjs-default-skin .vjs-big-play-button {
  left: 0.5em;
  top: 0.5em;
  font-size: 3em;
  display: block;
  z-index: 2;
  position: absolute;
  width: 4em;
  height: 2.6em;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  opacity: 1;
  /* Need a slightly gray bg so it can be seen on black backgrounds */
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7);
  border: 0.1em solid #3b4249;
  /* border-radius */
  -webkit-border-radius: 0.8em;
  -moz-border-radius: 0.8em;
  border-radius: 0.8em;
  /* box-shadow */
  -webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  -moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
  /* transition */
  -webkit-transition: all 0.4s;
  -moz-transition: all 0.4s;
  -o-transition: all 0.4s;
  transition: all 0.4s; }

/* Optionally center */
.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button {
  /* Center it horizontally */
  left: 50%;
  margin-left: -2.1em;
  /* Center it vertically */
  top: 50%;
  margin-top: -1.4000000000000001em; }

/* Hide if controls are disabled */
.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button {
  display: none; }

/* Hide when video starts playing */
.vjs-default-skin.vjs-has-started .vjs-big-play-button {
  display: none; }

/* Hide on mobile devices. Remove when we stop using native controls
    by default on mobile  */
.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button {
  display: none; }

.vjs-default-skin:hover .vjs-big-play-button,
.vjs-default-skin .vjs-big-play-button:focus {
  outline: 0;
  border-color: #fff;
  /* IE8 needs a non-glow hover state */
  background-color: #505050;
  background-color: rgba(50, 50, 50, 0.75);
  /* box-shadow */
  -webkit-box-shadow: 0 0 3em #ffffff;
  -moz-box-shadow: 0 0 3em #ffffff;
  box-shadow: 0 0 3em #ffffff;
  /* transition */
  -webkit-transition: all 0s;
  -moz-transition: all 0s;
  -o-transition: all 0s;
  transition: all 0s; }

.vjs-default-skin .vjs-big-play-button:before {
  content: "\e001";
  font-family: VideoJS;
  /* In order to center the play icon vertically we need to set the line height
     to the same as the button height */
  line-height: 2.6em;
  text-shadow: 0.05em 0.05em 0.1em #000;
  text-align: center;
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%; }

.vjs-error .vjs-big-play-button {
  display: none; }

/* Error Display
--------------------------------------------------------------------------------
*/
.vjs-error-display {
  display: none; }

.vjs-error .vjs-error-display {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%; }

.vjs-error .vjs-error-display:before {
  content: 'X';
  font-family: Arial;
  font-size: 4em;
  color: #666666;
  /* In order to center the play icon vertically we need to set the line height
     to the same as the button height */
  line-height: 1;
  text-shadow: 0.05em 0.05em 0.1em #000;
  text-align: center;
  vertical-align: middle;
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -0.5em;
  width: 100%; }

.vjs-error-display div {
  position: absolute;
  bottom: 1em;
  right: 0;
  left: 0;
  font-size: 1.4em;
  text-align: center;
  padding: 3px;
  background: #000000;
  background: rgba(0, 0, 0, 0.5); }

.vjs-error-display a,
.vjs-error-display a:visited {
  color: #F4A460; }

/* Loading Spinner
--------------------------------------------------------------------------------
*/
.vjs-loading-spinner {
  /* Should be hidden by default */
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 4em;
  line-height: 1;
  width: 1em;
  height: 1em;
  margin-left: -0.5em;
  margin-top: -0.5em;
  opacity: 0.75; }

/* Show the spinner when waiting for data and seeking to a new time */
.vjs-waiting .vjs-loading-spinner,
.vjs-seeking .vjs-loading-spinner {
  display: block;
  /* only animate when showing because it can be processor heavy */
  /* animation */
  -webkit-animation: spin 1.5s infinite linear;
  -moz-animation: spin 1.5s infinite linear;
  -o-animation: spin 1.5s infinite linear;
  animation: spin 1.5s infinite linear; }

/* Errors are unrecoverable without user interaction so hide the spinner */
.vjs-error .vjs-loading-spinner {
  display: none;
  /* ensure animation doesn't continue while hidden */
  /* animation */
  -webkit-animation: none;
  -moz-animation: none;
  -o-animation: none;
  animation: none; }

.vjs-default-skin .vjs-loading-spinner:before {
  content: "\e01e";
  font-family: VideoJS;
  position: absolute;
  top: 0;
  left: 0;
  width: 1em;
  height: 1em;
  text-align: center;
  text-shadow: 0em 0em 0.1em #000; }

@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg); }
  100% {
    -moz-transform: rotate(359deg); } }

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(359deg); } }

@-o-keyframes spin {
  0% {
    -o-transform: rotate(0deg); }
  100% {
    -o-transform: rotate(359deg); } }

@keyframes spin {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(359deg); } }

/* Menu Buttons (Captions/Subtitles/etc.)
--------------------------------------------------------------------------------
*/
.vjs-default-skin .vjs-menu-button {
  float: right;
  cursor: pointer; }

.vjs-default-skin .vjs-menu {
  display: none;
  position: absolute;
  bottom: 0;
  left: 0em;
  /* (Width of vjs-menu - width of button) / 2 */
  width: 0em;
  height: 0em;
  margin-bottom: 3em;
  border-left: 2em solid transparent;
  border-right: 2em solid transparent;
  border-top: 1.55em solid #000000;
  /* Same width top as ul bottom */
  border-top-color: rgba(7, 40, 50, 0.5);
  /* Same as ul background */ }

/* Button Pop-up Menu */
.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
  display: block;
  padding: 0;
  margin: 0;
  position: absolute;
  width: 10em;
  bottom: 1.5em;
  /* Same bottom as vjs-menu border-top */
  max-height: 15em;
  overflow: auto;
  left: -5em;
  /* Width of menu - width of button / 2 */
  /* background-color-with-alpha */
  background-color: #07141e;
  background-color: rgba(7, 20, 30, 0.7);
  /* box-shadow */
  -webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
  -moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
  box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2); }

.vjs-default-skin .vjs-menu-button:hover .vjs-control-content .vjs-menu,
.vjs-default-skin .vjs-control-content .vjs-menu.vjs-lock-showing {
  display: block; }

/* prevent menus from opening while scrubbing (FF, IE) */
.vjs-default-skin.vjs-scrubbing .vjs-menu-button:hover .vjs-control-content .vjs-menu {
  display: none; }

.vjs-default-skin .vjs-menu-button ul li {
  list-style: none;
  margin: 0;
  padding: 0.3em 0 0.3em 0;
  line-height: 1.4em;
  font-size: 1.2em;
  text-align: center;
  text-transform: lowercase; }

.vjs-default-skin .vjs-menu-button ul li.vjs-selected {
  background-color: #000; }

.vjs-default-skin .vjs-menu-button ul li:focus,
.vjs-default-skin .vjs-menu-button ul li:hover,
.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
  outline: 0;
  color: #111;
  /* background-color-with-alpha */
  background-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.75);
  /* box-shadow */
  -webkit-box-shadow: 0 0 1em #ffffff;
  -moz-box-shadow: 0 0 1em #ffffff;
  box-shadow: 0 0 1em #ffffff; }

.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 1em;
  line-height: 2em;
  padding: 0;
  margin: 0 0 0.3em 0;
  font-weight: bold;
  cursor: default; }

/* Subtitles Button */
.vjs-default-skin .vjs-subtitles-button:before {
  content: "\e00c"; }

/* Captions Button */
.vjs-default-skin .vjs-captions-button:before {
  content: "\e008"; }

/* Chapters Button */
.vjs-default-skin .vjs-chapters-button:before {
  content: "\e00c"; }

.vjs-default-skin .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content {
  width: 24em;
  left: -12em; }

/* Replacement for focus outline */
.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
  /* box-shadow */
  -webkit-box-shadow: 0 0 1em #ffffff;
  -moz-box-shadow: 0 0 1em #ffffff;
  box-shadow: 0 0 1em #ffffff; }

/*
REQUIRED STYLES (be careful overriding)
================================================================================
When loading the player, the video tag is replaced with a DIV,
that will hold the video tag or object tag for other playback methods.
The div contains the video playback element (Flash or HTML5) and controls,
and sets the width and height of the video.

** If you want to add some kind of border/padding (e.g. a frame), or special
positioning, use another containing element. Otherwise you risk messing up
control positioning and full window mode. **
*/
.video-js {
  background-color: #000;
  position: relative;
  padding: 0;
  /* Start with 10px for base font size so other dimensions can be em based and
     easily calculable. */
  font-size: 10px;
  /* Allow poster to be vertically aligned. */
  vertical-align: middle;
  /*  display: table-cell; */
  /*This works in Safari but not Firefox.*/
  /* Provide some basic defaults for fonts */
  font-weight: normal;
  font-style: normal;
  /* Avoiding helvetica: issue #376 */
  font-family: Arial, sans-serif;
  /* Turn off user selection (text highlighting) by default.
     The majority of player components will not be text blocks.
     Text areas will need to turn user selection back on. */
  /* user-select */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

/* Playback technology elements expand to the width/height of the containing div
    <video> or <object> */
.video-js .vjs-tech {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
   checking fullScreenEnabled. */
.video-js:-moz-full-screen {
  position: absolute; }

/* Fullscreen Styles */
body.vjs-full-window {
  padding: 0;
  margin: 0;
  height: 100%;
  /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
  overflow-y: auto; }

.video-js.vjs-fullscreen {
  position: fixed;
  overflow: hidden;
  z-index: 1000;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
  /* IE6 full-window (underscore hack) */
  _position: absolute; }

.video-js:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important; }

.video-js.vjs-fullscreen.vjs-user-inactive {
  cursor: none; }

/* Poster Styles */
.vjs-poster {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  cursor: pointer;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0; }

.vjs-poster img {
  display: block;
  margin: 0 auto;
  max-height: 100%;
  padding: 0;
  width: 100%; }

/* Hide the poster after the video has started playing */
.video-js.vjs-has-started .vjs-poster {
  display: none; }

/* Don't hide the poster if we're playing audio */
.video-js.vjs-audio.vjs-has-started .vjs-poster {
  display: block; }

/* Hide the poster when controls are disabled because it's clickable
    and the native poster can take over */
.video-js.vjs-controls-disabled .vjs-poster {
  display: none; }

/* Hide the poster when native controls are used otherwise it covers them */
.video-js.vjs-using-native-controls .vjs-poster {
  display: none; }

/* Text Track Styles */
/* Overall track holder for both captions and subtitles */
.video-js .vjs-text-track-display {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 3em;
  right: 0;
  pointer-events: none; }

/* Captions Settings Dialog */
.vjs-caption-settings {
  position: relative;
  top: 1em;
  background-color: #000;
  opacity: 0.75;
  color: #FFF;
  margin: 0 auto;
  padding: 0.5em;
  height: 15em;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
  width: 40em; }

.vjs-caption-settings .vjs-tracksettings {
  top: 0;
  bottom: 2em;
  left: 0;
  right: 0;
  position: absolute;
  overflow: auto; }

.vjs-caption-settings .vjs-tracksettings-colors,
.vjs-caption-settings .vjs-tracksettings-font {
  float: left; }

.vjs-caption-settings .vjs-tracksettings-colors:after,
.vjs-caption-settings .vjs-tracksettings-font:after,
.vjs-caption-settings .vjs-tracksettings-controls:after {
  clear: both; }

.vjs-caption-settings .vjs-tracksettings-controls {
  position: absolute;
  bottom: 1em;
  right: 1em; }

.vjs-caption-settings .vjs-tracksetting {
  margin: 5px;
  padding: 3px;
  min-height: 40px; }

.vjs-caption-settings .vjs-tracksetting label {
  display: block;
  width: 100px;
  margin-bottom: 5px; }

.vjs-caption-settings .vjs-tracksetting span {
  display: inline;
  margin-left: 5px; }

.vjs-caption-settings .vjs-tracksetting > div {
  margin-bottom: 5px;
  min-height: 20px; }

.vjs-caption-settings .vjs-tracksetting > div:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  min-height: 0; }

.vjs-caption-settings label > input {
  margin-right: 10px; }

.vjs-caption-settings input[type="button"] {
  width: 40px;
  height: 40px; }

/* Hide disabled or unsupported controls */
.vjs-hidden {
  display: none !important; }

.vjs-lock-showing {
  display: block !important;
  opacity: 1;
  visibility: visible; }

/*  In IE8 w/ no JavaScript (no HTML5 shim), the video tag doesn't register.
    The .video-js classname on the video tag also isn't considered.
    This optional paragraph inside the video tag can provide a message to users
    about what's required to play video. */
.vjs-no-js {
  padding: 2em;
  color: #ccc;
  background-color: #333;
  font-size: 1.8em;
  font-family: Arial, sans-serif;
  text-align: center;
  width: 30em;
  height: 15em;
  margin: 0 auto; }

.vjs-no-js a,
.vjs-no-js a:visited {
  color: #F4A460; }

/* -----------------------------------------------------------------------------
The original source of this file lives at
https://github.com/videojs/video.js/blob/master/src/css/video-js.less */
/*overrides*/
.vjs-captions-button.vjs-menu-button.vjs-control .vjs-menu {
  border: 0; }

.vjs-default-skin .vjs-captions-button.vjs-menu-button.vjs-control .vjs-menu .vjs-menu-content {
  bottom: 0; }

/**
 * videojs.ads.css
 */
/* Ad playback */
.vjs-ad-playing.vjs-ad-playing .vjs-progress-control {
  pointer-events: none; }

.vjs-ad-playing.vjs-ad-playing .vjs-play-progress {
  background-color: #ffe400; }

/* Ad loading */
.vjs-ad-playing.vjs-ad-loading .vjs-loading-spinner {
  display: block; }

/**
 * Copyright 2014 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
.ima-ad-container {
  top: 0px;
  position: absolute;
  display: block; }

/* Move overlay when controls are active. */
.video-js.vjs-user-inactive.vjs-playing .bumpable-ima-ad-container {
  margin-top: 0px; }

.video-js.vjs-user-active.vjs-playing .bumpable-ima-ad-container {
  margin-top: -40px; }

#ima-controls-div {
  bottom: 0px;
  height: 37px;
  position: absolute;
  display: none;
  opacity: 1;
  background-color: rgba(7, 20, 30, 0.7);
  background: -moz-linear-gradient(bottom, rgba(7, 20, 30, 0.7) 0%, rgba(7, 20, 30, 0) 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left bottom, left top, color-stop(0%, rgba(7, 20, 30, 0.7)), color-stop(100%, rgba(7, 20, 30, 0)));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(bottom, rgba(7, 20, 30, 0.7) 0%, rgba(7, 20, 30, 0) 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(bottom, rgba(7, 20, 30, 0.7) 0%, rgba(7, 20, 30, 0) 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(bottom, rgba(7, 20, 30, 0.7) 0%, rgba(7, 20, 30, 0) 100%);
  /* IE10+ */
  background: linear-gradient(to top, rgba(7, 20, 30, 0.7) 0%, rgba(7, 20, 30, 0) 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0007141E', endColorstr='#07141E',GradientType=0 );
  /* IE6-9 */ }

#ima-countdown-div {
  height: 11px;
  color: #FFFFFF;
  text-shadow: 0 0 0.2em #000; }

#ima-seek-bar-div {
  top: 12px;
  height: 3px;
  position: absolute;
  background: rgba(255, 255, 255, 0.4); }

#ima-progress-div {
  width: 0px;
  height: 3px;
  background-color: #ECC546; }

#ima-countdown-div {
  height: 10px; }

#ima-play-pause-div, #ima-mute-div, #ima-fullscreen-div {
  width: 35px;
  height: 20px;
  top: 11px;
  left: 0px;
  position: absolute;
  color: #CCCCCC;
  font-family: VideoJS;
  font-size: 1.5em;
  line-height: 2;
  text-align: center; }

#ima-mute-div {
  left: auto;
  right: 35px; }

#ima-fullscreen-div {
  left: auto;
  right: 0px; }

.ima-playing:before {
  content: "\e002"; }

.ima-paused:before {
  content: "\e001"; }

.ima-playing:hover:before, .ima-paused:hover:before {
  text-shadow: 0 0 1em #fff; }

.ima-non-muted:before {
  content: "\e006"; }

.ima-muted:before {
  content: "\e003"; }

.ima-non-muted:hover:before, .ima-muted:hover:before {
  text-shadow: 0 0 1em #fff; }

.ima-non-fullscreen:before {
  content: "\e000"; }

.ima-fullscreen:before {
  content: "\e00b"; }

.ima-non-fullscreen:hover:before, .ima-fullscreen:hover:before {
  text-shadow: 0 0 1em #fff; }

.vjs-control-bar {
  z-index: 1; }

.video-js #player-endcard {
  background-color: #000;
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 0; }
  .video-js #player-endcard #related-content {
    bottom: 3.5em;
    left: 0;
    position: absolute;
    right: 0;
    top: 0; }
  .video-js #player-endcard #next-video {
    bottom: 20%;
    font-size: 12px;
    left: 0;
    position: absolute;
    right: 0;
    text-align: center;
    top: auto;
    z-index: 1; }
    .video-js #player-endcard #next-video a {
      color: white; }
    @media (min-width: 600px) {
      .video-js #player-endcard #next-video {
        font-size: 16px; } }
    .video-js #player-endcard #next-video div#countdown {
      color: #e75300;
      height: 10%;
      font-family: Helvetica;
      font-size: 10px; }
      @media (mix-width: 600px) {
        .video-js #player-endcard #next-video div#countdown {
          font-size: 14px; } }
    .video-js #player-endcard #next-video #counter {
      margin-left: 5px; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW9qcy5jc3MiLCJzb3VyY2VzIjpbInZpZGVvanMuc2NzcyIsInZlbmRvci92aWRlb2pzL3ZpZGVvLWpzLnNjc3MiLCJ2ZW5kb3IvdmlkZW9qcy92aWRlb2pzLmFkcy5zY3NzIiwidmVuZG9yL3ZpZGVvanMvdmlkZW9qcy5pbWEuc2NzcyIsInZlbmRvci92aWRlb2pzL3ZpZGVvanMuZW5kY2FyZC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVmlkZW9KU1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0IFwidmVuZG9yL3ZpZGVvanMvdmlkZW8tanMuc2Nzc1wiO1xuQGltcG9ydCBcInZlbmRvci92aWRlb2pzL3ZpZGVvanMuYWRzXCI7XG5AaW1wb3J0IFwidmVuZG9yL3ZpZGVvanMvdmlkZW9qcy5pbWFcIjtcbkBpbXBvcnQgXCJ2ZW5kb3IvdmlkZW9qcy92aWRlb2pzLmVuZGNhcmRcIjtcbiIsIi8qIVxuVmlkZW8uanMgRGVmYXVsdCBTdHlsZXMgKGh0dHA6Ly92aWRlb2pzLmNvbSlcblZlcnNpb24gNC4xMi41XG5DcmVhdGUgeW91ciBvd24gc2tpbiBhdCBodHRwOi8vZGVzaWduZXIudmlkZW9qcy5jb21cbiovXG4vKiBTS0lOXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIG1haW4gY2xhc3MgbmFtZSBmb3IgYWxsIHNraW4tc3BlY2lmaWMgc3R5bGVzLiBUbyBtYWtlIHlvdXIgb3duIHNraW4sXG5yZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiAndmpzLWRlZmF1bHQtc2tpbicgd2l0aCBhIG5ldyBuYW1lLiBUaGVuIGFkZCB5b3VyIG5ld1xuc2tpbiBuYW1lIHRvIHlvdXIgdmlkZW8gdGFnIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgc2tpbi5cbmUuZy4gPHZpZGVvIGNsYXNzPVwidmlkZW8tanMgbXktc2tpbi1uYW1lXCI+XG4qL1xuLnZqcy1kZWZhdWx0LXNraW4ge1xuICBjb2xvcjogI2NjY2NjYztcbn1cbi8qIEN1c3RvbSBJY29uIEZvbnRcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5UaGUgY29udHJvbCBpY29ucyBhcmUgZnJvbSBhIGN1c3RvbSBmb250LiBFYWNoIGljb24gY29ycmVzcG9uZHMgdG8gYSBjaGFyYWN0ZXJcbihlLmcuIFwiXFxlMDAxXCIpLiBGb250IGljb25zIGFsbG93IGZvciBlYXN5IHNjYWxpbmcgYW5kIGNvbG9yaW5nIG9mIGljb25zLlxuKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ1ZpZGVvSlMnO1xuICAvLyBUaGlzIGZvbnQgaXMgbmV2ZXIgbG9hZGVkLlxuICAvL3NyYzogdXJsKCdmb250L3Zqcy5lb3QnKTtcbiAgLy9zcmM6IHVybCgnZm9udC92anMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgdXJsKCdmb250L3Zqcy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnZm9udC92anMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJ2ZvbnQvdmpzLnN2ZyNpY29tb29uJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogQmFzZSBVSSBDb21wb25lbnQgQ2xhc3Nlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG4vKiBTbGlkZXIgLSB1c2VkIGZvciBWb2x1bWUgYmFyIGFuZCBTZWVrIGJhciAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1zbGlkZXIge1xuICAvKiBSZXBsYWNlIGJyb3dzZXIgZm9jdXMgaGlnaGxpZ2h0IHdpdGggaGFuZGxlIGhpZ2hsaWdodCAqL1xuICBvdXRsaW5lOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgLyogYmFja2dyb3VuZC1jb2xvci13aXRoLWFscGhhICovXG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTEsIDUxLCA1MSwgMC45KTtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtc2xpZGVyOmZvY3VzIHtcbiAgLyogYm94LXNoYWRvdyAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAyZW0gI2ZmZmZmZjtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMmVtICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAyZW0gI2ZmZmZmZjtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtc2xpZGVyLWhhbmRsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogTmVlZGVkIGZvciBJRTYgKi9cbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1zbGlkZXItaGFuZGxlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA5XCI7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDBlbSAwZW0gMWVtICNmZmY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICAvKiBSb3RhdGUgdGhlIHNxdWFyZSBpY29uIHRvIG1ha2UgYSBkaWFtb25kICovXG4gIC8qIHRyYW5zZm9ybSAqL1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIC1vLXRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG59XG4vKiBDb250cm9sIEJhclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblRoZSBkZWZhdWx0IGNvbnRyb2wgYmFyIHRoYXQgaXMgYSBjb250YWluZXIgZm9yIG1vc3Qgb2YgdGhlIGNvbnRyb2xzLlxuKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtY29udHJvbC1iYXIge1xuICAvKiBTdGFydCBoaWRkZW4gKi9cbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiBQbGFjZSBjb250cm9sIGJhciBhdCB0aGUgYm90dG9tIG9mIHRoZSBwbGF5ZXIgYm94L3ZpZGVvLlxuICAgICBJZiB5b3Ugd2FudCBtb3JlIG1hcmdpbiBiZWxvdyB0aGUgY29udHJvbCBiYXIsIGFkZCBtb3JlIGhlaWdodC4gKi9cbiAgYm90dG9tOiAwO1xuICAvKiBVc2UgbGVmdC9yaWdodCB0byBzdHJldGNoIHRvIDEwMCUgd2lkdGggb2YgcGxheWVyIGRpdiAqL1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgLyogSGVpZ2h0IGluY2x1ZGVzIGFueSBtYXJnaW4geW91IHdhbnQgYWJvdmUgb3IgYmVsb3cgY29udHJvbCBpdGVtcyAqL1xuICBoZWlnaHQ6IDMuMGVtO1xuICAvKiBiYWNrZ3JvdW5kLWNvbG9yLXdpdGgtYWxwaGEgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogIzA3MTQxZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3LCAyMCwgMzAsIDAuNyk7XG59XG4vKiBTaG93IHRoZSBjb250cm9sIGJhciBvbmx5IG9uY2UgdGhlIHZpZGVvIGhhcyBzdGFydGVkIHBsYXlpbmcgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1oYXMtc3RhcnRlZCAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIFZpc2liaWxpdHkgbmVlZGVkIHRvIG1ha2Ugc3VyZSB0aGluZ3MgaGlkZSBpbiBvbGRlciBicm93c2VycyB0b28uICovXG5cbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbiAgLyogdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMC4xcywgb3BhY2l0eSAwLjFzO1xuICAtbW96LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMC4xcywgb3BhY2l0eSAwLjFzO1xuICAtby10cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4xcztcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwLjFzLCBvcGFjaXR5IDAuMXM7XG59XG4vKiBIaWRlIHRoZSBjb250cm9sIGJhciB3aGVuIHRoZSB2aWRlbyBpcyBwbGF5aW5nIGFuZCB0aGUgdXNlciBpcyBpbmFjdGl2ZSAgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1oYXMtc3RhcnRlZC52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgLyogdHJhbnNpdGlvbiAqL1xuICAtd2Via2l0LXRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XG4gIC1tb3otdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbiAgLW8tdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbn1cbi52anMtZGVmYXVsdC1za2luLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi52anMtZGVmYXVsdC1za2luLnZqcy11c2luZy1uYXRpdmUtY29udHJvbHMgLnZqcy1jb250cm9sLWJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBUaGUgY29udHJvbCBiYXIgc2hvdWxkbid0IHNob3cgYWZ0ZXIgYW4gZXJyb3IgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1lcnJvciAudmpzLWNvbnRyb2wtYmFyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qIERvbid0IGhpZGUgdGhlIGNvbnRyb2wgYmFyIGlmIGl0J3MgYXVkaW8gKi9cbi52anMtYXVkaW8udmpzLWRlZmF1bHQtc2tpbi52anMtaGFzLXN0YXJ0ZWQudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLnZqcy1jb250cm9sLWJhciB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4vKiBJRTggaXMgZmxha2V5IHdpdGggZm9udHMsIGFuZCB5b3UgaGF2ZSB0byBjaGFuZ2UgdGhlIGFjdHVhbCBjb250ZW50IHRvIGZvcmNlXG5mb250cyB0byBzaG93L2hpZGUgcHJvcGVybHkuXG4gIC0gXCJcXDlcIiBJRTggaGFjayBkaWRuJ3Qgd29yayBmb3IgdGhpc1xuICAtIEZvdW5kIGluIFhQIElFOCBmcm9tIGh0dHA6Ly9tb2Rlcm4uaWUuIERvZXMgbm90IHNob3cgdXAgaW4gXCJJRTggbW9kZVwiIGluIElFOVxuKi9cbkBtZWRpYSBcXDBzY3JlZW4ge1xuICAudmpzLWRlZmF1bHQtc2tpbi52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLWNvbnRyb2wtYmFyIDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbi8qIEdlbmVyYWwgc3R5bGVzIGZvciBpbmRpdmlkdWFsIGNvbnRyb2xzLiAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGhlaWdodDogMy4wZW07XG4gIHdpZHRoOiA0ZW07XG59XG4vKiBGb250IGJ1dHRvbiBpY29ucyAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi8qIFJlcGxhY2VtZW50IGZvciBmb2N1cyBvdXRsaW5lICovXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLWNvbnRyb2w6Zm9jdXM6YmVmb3JlLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sOmhvdmVyOmJlZm9yZSB7XG4gIHRleHQtc2hhZG93OiAwZW0gMGVtIDFlbSAjZmZmZmZmO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sOmZvY3VzIHtcbiAgLyogIG91dGxpbmU6IDA7ICovXG4gIC8qIGtleWJvYXJkLW9ubHkgdXNlcnMgY2Fubm90IHNlZSB0aGUgZm9jdXMgb24gc2V2ZXJhbCBvZiB0aGUgVUkgZWxlbWVudHMgd2hlblxuICB0aGlzIGlzIHNldCB0byAwICovXG5cbn1cbi8qIEhpZGUgY29udHJvbCB0ZXh0IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbnJlYWRlcnMgKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtY29udHJvbC10ZXh0IHtcbiAgLyogaGlkZS12aXN1YWxseSAqL1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cbi8qIFBsYXkvUGF1c2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wbGF5LWNvbnRyb2wge1xuICB3aWR0aDogNWVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXBsYXktY29udHJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiO1xufVxuLnZqcy1kZWZhdWx0LXNraW4udmpzLXBsYXlpbmcgLnZqcy1wbGF5LWNvbnRyb2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDJcIjtcbn1cbi8qIFBsYXliYWNrIHRvZ2dsZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXBsYXliYWNrLXJhdGUgLnZqcy1wbGF5YmFjay1yYXRlLXZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXBsYXliYWNrLXJhdGUudmpzLW1lbnUtYnV0dG9uIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIHdpZHRoOiA0ZW07XG4gIGxlZnQ6IC0yZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4vKiBWb2x1bWUvTXV0ZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtbXV0ZS1jb250cm9sLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiByaWdodDtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtbXV0ZS1jb250cm9sOmJlZm9yZSxcbi52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLW1lbnUtYnV0dG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA2XCI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTA6YmVmb3JlLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24udmpzLXZvbC0wOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDAzXCI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTE6YmVmb3JlLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24udmpzLXZvbC0xOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA0XCI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTI6YmVmb3JlLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24udmpzLXZvbC0yOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDA1XCI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1jb250cm9sIHtcbiAgd2lkdGg6IDVlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtYmFyIHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAwLjZlbTtcbiAgbWFyZ2luOiAxLjFlbSBhdXRvIDA7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDAuNWVtO1xuICAvKiBhc3N1bWluZyB2b2x1bWUgc3RhcnRzIGF0IDEuMCAqL1xuXG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjNjZhOGNjIHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFZQUFBQUdDQVlBQUFEZ3pPOUlBQUFBUDBsRVFWUUlIV1dNQVFvQUlBZ0RSL1FKL1ViLy8wNCt3N1pJQ0J3Y09nNUZaaTVpQkI4MkFHeml4RWdsSnJkNFRWSzVYVUpwc2tTVEV2cGRGelg5QUIycEd6aVNRY3ZBQUFBQUFFbEZUa1N1UW1DQykgLTUwJSAwIHJlcGVhdDtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLWJhciAudmpzLXZvbHVtZS1oYW5kbGUge1xuICB3aWR0aDogMC41ZW07XG4gIGhlaWdodDogMC41ZW07XG4gIC8qIEFzc3VtZXMgdm9sdW1lIHN0YXJ0cyBhdCAxLjAuIElmIHlvdSBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlXG4gICAgIGhhbmRsZSByZWxhdGl2ZSB0byB0aGUgdm9sdW1lIGJhciwgeW91J2xsIG5lZWQgdG8gdXBkYXRlIHRoaXMgdmFsdWVcbiAgICAgdG9vLiAqL1xuXG4gIGxlZnQ6IDQuNWVtO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtaGFuZGxlOmJlZm9yZSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHRvcDogLTAuMmVtO1xuICBsZWZ0OiAtMC4yZW07XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxuLyogVGhlIHZvbHVtZSBtZW51IGJ1dHRvbiBpcyBsaWtlIG1lbnUgYnV0dG9ucyAoY2FwdGlvbnMvc3VidGl0bGVzKSBidXQgd29ya3NcbiAgICBhIGxpdHRsZSBkaWZmZXJlbnRseS4gSXQgbmVlZHMgdG8gYmUgcG9zc2libGUgdG8gdGFiIHRvIHRoZSB2b2x1bWUgc2xpZGVyXG4gICAgd2l0aG91dCBoaXR0aW5nIHNwYWNlIGJhciBvbiB0aGUgbWVudSBidXR0b24uIFRvIGRvIHRoaXMgd2UncmUgbm90IHVzaW5nXG4gICAgZGlzcGxheTpub25lIHRvIGhpZGUgdGhlIHNsaWRlciBtZW51IGJ5IGRlZmF1bHQsIGFuZCBpbnN0ZWFkIHNldHRpbmcgdGhlXG4gICAgd2lkdGggYW5kIGhlaWdodCB0byB6ZXJvLiAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24gLnZqcy1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy12b2x1bWUtbWVudS1idXR0b24gLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLW1lbnUtYnV0dG9uOmhvdmVyIC52anMtbWVudSxcbi52anMtZGVmYXVsdC1za2luIC52anMtdm9sdW1lLW1lbnUtYnV0dG9uIC52anMtbWVudS52anMtbG9jay1zaG93aW5nIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSg3LCA0MCwgNTAsIDAuNSk7XG4gIC8qIFNhbWUgYXMgdWwgYmFja2dyb3VuZCAqL1xuXG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1tZW51LWJ1dHRvbjpob3ZlciAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQsXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXZvbHVtZS1tZW51LWJ1dHRvbiAudmpzLW1lbnUudmpzLWxvY2stc2hvd2luZyAudmpzLW1lbnUtY29udGVudCB7XG4gIGhlaWdodDogMi45ZW07XG4gIHdpZHRoOiAxMGVtO1xufVxuLyogUHJvZ3Jlc3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC4zZW07XG4gIGhlaWdodDogMWVtO1xuICAvKiBTZXQgYWJvdmUgdGhlIHJlc3Qgb2YgdGhlIGNvbnRyb2xzLiAqL1xuICB0b3A6IC0xZW07XG4gIC8qIFNocmluayB0aGUgYmFyIHNsb3dlciB0aGFuIGl0IGdyb3dzLiAqL1xuICAvKiB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbn1cbi8qIE9uIGhvdmVyLCBtYWtlIHRoZSBwcm9ncmVzcyBiYXIgZ3JvdyB0byBzb21ldGhpbmcgdGhhdCdzIG1vcmUgY2xpY2thYmxlLlxuICAgIFRoaXMgc2ltcGx5IGNoYW5nZXMgdGhlIG92ZXJhbGwgZm9udCBmb3IgdGhlIHByb2dyZXNzIGJhciwgYW5kIHRoaXNcbiAgICB1cGRhdGVzIGJvdGggdGhlIGVtLWJhc2VkIHdpZHRocyBhbmQgaGVpZ2h0cywgYXMgd2VsbHMgYXMgdGhlIGljb24gZm9udCAqL1xuLnZqcy1kZWZhdWx0LXNraW46aG92ZXIgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgZm9udC1zaXplOiAuOWVtO1xuICAvKiBFdmVuIHRob3VnaCB3ZSdyZSBub3QgY2hhbmdpbmcgdGhlIHRvcC9oZWlnaHQsIHdlIG5lZWQgdG8gaW5jbHVkZSB0aGVtIGluXG4gICAgICB0aGUgdHJhbnNpdGlvbiBzbyB0aGV5J3JlIGhhbmRsZWQgY29ycmVjdGx5LiAqL1xuXG4gIC8qIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuLyogQm94IGNvbnRhaW5pbmcgcGxheSBhbmQgbG9hZCBwcm9ncmVzc2VzLiBBbHNvIGFjdHMgYXMgc2VlayBzY3J1YmJlci4gKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtcHJvZ3Jlc3MtaG9sZGVyIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLyogUHJvZ3Jlc3MgQmFycyAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1wbGF5LXByb2dyZXNzLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzIGRpdiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICAvKiB1cGRhdGVkIGJ5IGphdmFzY3JpcHQgZHVyaW5nIHBsYXliYWNrICovXG5cbiAgd2lkdGg6IDA7XG4gIC8qIE5lZWRlZCBmb3IgSUU2ICovXG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtcGxheS1wcm9ncmVzcyB7XG4gIC8qXG4gICAgVXNpbmcgYSBkYXRhIFVSSSB0byBjcmVhdGUgdGhlIHdoaXRlIGRpYWdvbmFsIGxpbmVzIHdpdGggYSB0cmFuc3BhcmVudFxuICAgICAgYmFja2dyb3VuZC4gU3VycHJpc2luZ2x5IHdvcmtzIGluIElFOC5cbiAgICAgIENyZWF0ZWQgdXNpbmcgaHR0cDovL3d3dy5wYXR0ZXJuaWZ5LmNvbVxuICAgIENoYW5naW5nIHRoZSBmaXJzdCBjb2xvciB2YWx1ZSB3aWxsIGNoYW5nZSB0aGUgYmFyIGNvbG9yLlxuICAgIEFsc28gdXNpbmcgYSBwYXJhbGF4IGVmZmVjdCB0byBtYWtlIHRoZSBsaW5lcyBtb3ZlIGJhY2t3YXJkcy5cbiAgICAgIFRoZSAtNTAlIGxlZnQgcG9zaXRpb24gbWFrZXMgdGhhdCBoYXBwZW4uXG4gICovXG5cbiAgYmFja2dyb3VuZDogIzY2YThjYyB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBWUFBQUFHQ0FZQUFBRGd6TzlJQUFBQVAwbEVRVlFJSFdXTUFRb0FJQWdEUi9RSi9VYi8vMDQrdzdaSUNCd2NPZzVGWmk1aUJCODJBR3ppeEVnbEpyZDRUVks1WFVKcHNrU1RFdnBkRnpYOUFCMnBHemlTUWN2QUFBQUFBRWxGVGtTdVFtQ0MpIC01MCUgMCByZXBlYXQ7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLWxvYWQtcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiAjNjQ2NDY0IC8qIElFOC0gRmFsbGJhY2sgKi87XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi8qIHRoZXJlIGFyZSBjaGlsZCBlbGVtZW50cyBvZiB0aGUgbG9hZCBwcm9ncmVzcyBiYXIgdGhhdCByZXByZXNlbnQgdGhlXG4gICBzcGVjaWZpYyB0aW1lIHJhbmdlcyB0aGF0IGhhdmUgYmVlbiBidWZmZXJlZCAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1sb2FkLXByb2dyZXNzIGRpdiB7XG4gIGJhY2tncm91bmQ6ICM3ODc4NzggLyogSUU4LSBGYWxsYmFjayAqLztcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1zZWVrLWhhbmRsZSB7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1zZWVrLWhhbmRsZTpiZWZvcmUge1xuICBwYWRkaW5nLXRvcDogMC4xZW0gLyogTWlub3IgYWRqdXN0bWVudCAqLztcbn1cbi8qIExpdmUgTW9kZVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG4udmpzLWRlZmF1bHQtc2tpbi52anMtbGl2ZSAudmpzLXRpbWUtY29udHJvbHMsXG4udmpzLWRlZmF1bHQtc2tpbi52anMtbGl2ZSAudmpzLXRpbWUtZGl2aWRlcixcbi52anMtZGVmYXVsdC1za2luLnZqcy1saXZlIC52anMtcHJvZ3Jlc3MtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmpzLWRlZmF1bHQtc2tpbi52anMtbGl2ZSAudmpzLWxpdmUtZGlzcGxheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyogTGl2ZSBEaXNwbGF5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtbGl2ZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAzZW07XG59XG4vKiBUaW1lIERpc3BsYXlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy10aW1lLWNvbnRyb2xzIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIEFsaWduIHZlcnRpY2FsbHkgYnkgbWFraW5nIHRoZSBsaW5lIGhlaWdodCB0aGUgc2FtZSBhcyB0aGUgY29udHJvbCBiYXIgKi9cbiAgbGluZS1oZWlnaHQ6IDNlbTtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtY3VycmVudC10aW1lIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLWR1cmF0aW9uIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4vKiBSZW1haW5pbmcgdGltZSBpcyBpbiB0aGUgSFRNTCwgYnV0IG5vdCBpbmNsdWRlZCBpbiBkZWZhdWx0IGRlc2lnbiAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1yZW1haW5pbmctdGltZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLnZqcy10aW1lLWRpdmlkZXIge1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDNlbTtcbn1cbi8qIEZ1bGxzY3JlZW5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wge1xuICB3aWR0aDogMy44ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2w6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDBcIjtcbn1cbi8qIFN3aXRjaCB0byB0aGUgZXhpdCBpY29uIHdoZW4gdGhlIHBsYXllciBpcyBpbiBmdWxsc2NyZWVuICovXG4udmpzLWRlZmF1bHQtc2tpbi52anMtZnVsbHNjcmVlbiAudmpzLWZ1bGxzY3JlZW4tY29udHJvbDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwYlwiO1xufVxuLyogQmlnIFBsYXkgQnV0dG9uIChwbGF5IGJ1dHRvbiBhdCBzdGFydClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5Qb3NpdGlvbmluZyBvZiB0aGUgcGxheSBidXR0b24gaW4gdGhlIGNlbnRlciBvciBvdGhlciBjb3JuZXJzIGNhbiBiZSBkb25lIG1vcmVcbmVhc2lseSBpbiB0aGUgc2tpbiBkZXNpZ25lci4gaHR0cDovL2Rlc2lnbmVyLnZpZGVvanMuY29tL1xuKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgbGVmdDogMC41ZW07XG4gIHRvcDogMC41ZW07XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNGVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgLyogTmVlZCBhIHNsaWdodGx5IGdyYXkgYmcgc28gaXQgY2FuIGJlIHNlZW4gb24gYmxhY2sgYmFja2dyb3VuZHMgKi9cbiAgLyogYmFja2dyb3VuZC1jb2xvci13aXRoLWFscGhhICovXG4gIGJhY2tncm91bmQtY29sb3I6ICMwNzE0MWU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNywgMjAsIDMwLCAwLjcpO1xuICBib3JkZXI6IDAuMWVtIHNvbGlkICMzYjQyNDk7XG4gIC8qIGJvcmRlci1yYWRpdXMgKi9cbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwLjhlbTtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwLjhlbTtcbiAgYm9yZGVyLXJhZGl1czogMC44ZW07XG4gIC8qIGJveC1zaGFkb3cgKi9cbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDFlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAtbW96LWJveC1zaGFkb3c6IDBweCAwcHggMWVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMWVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIC8qIHRyYW5zaXRpb24gKi9cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC40cztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjRzO1xufVxuLyogT3B0aW9uYWxseSBjZW50ZXIgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1iaWctcGxheS1jZW50ZXJlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIC8qIENlbnRlciBpdCBob3Jpem9udGFsbHkgKi9cbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTIuMWVtO1xuICAvKiBDZW50ZXIgaXQgdmVydGljYWxseSAqL1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTEuNDAwMDAwMDAwMDAwMDAwMWVtO1xufVxuLyogSGlkZSBpZiBjb250cm9scyBhcmUgZGlzYWJsZWQgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIaWRlIHdoZW4gdmlkZW8gc3RhcnRzIHBsYXlpbmcgKi9cbi52anMtZGVmYXVsdC1za2luLnZqcy1oYXMtc3RhcnRlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBIaWRlIG9uIG1vYmlsZSBkZXZpY2VzLiBSZW1vdmUgd2hlbiB3ZSBzdG9wIHVzaW5nIG5hdGl2ZSBjb250cm9sc1xuICAgIGJ5IGRlZmF1bHQgb24gbW9iaWxlICAqL1xuLnZqcy1kZWZhdWx0LXNraW4udmpzLXVzaW5nLW5hdGl2ZS1jb250cm9scyAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmpzLWRlZmF1bHQtc2tpbjpob3ZlciAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtZGVmYXVsdC1za2luIC52anMtYmlnLXBsYXktYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAvKiBJRTggbmVlZHMgYSBub24tZ2xvdyBob3ZlciBzdGF0ZSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTA1MDUwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpO1xuICAvKiBib3gtc2hhZG93ICovXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDNlbSAjZmZmZmZmO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAzZW0gI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDNlbSAjZmZmZmZmO1xuICAvKiB0cmFuc2l0aW9uICovXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDBzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwcztcbiAgLW8tdHJhbnNpdGlvbjogYWxsIDBzO1xuICB0cmFuc2l0aW9uOiBhbGwgMHM7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLWJpZy1wbGF5LWJ1dHRvbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMVwiO1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgLyogSW4gb3JkZXIgdG8gY2VudGVyIHRoZSBwbGF5IGljb24gdmVydGljYWxseSB3ZSBuZWVkIHRvIHNldCB0aGUgbGluZSBoZWlnaHRcbiAgICAgdG8gdGhlIHNhbWUgYXMgdGhlIGJ1dHRvbiBoZWlnaHQgKi9cblxuICBsaW5lLWhlaWdodDogMi42ZW07XG4gIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlciAvKiBOZWVkZWQgZm9yIElFOCAqLztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnZqcy1lcnJvciAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBFcnJvciBEaXNwbGF5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cbi52anMtZXJyb3ItZGlzcGxheSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmpzLWVycm9yIC52anMtZXJyb3ItZGlzcGxheSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICdYJztcbiAgZm9udC1mYW1pbHk6IEFyaWFsO1xuICBmb250LXNpemU6IDRlbTtcbiAgY29sb3I6ICM2NjY2NjY7XG4gIC8qIEluIG9yZGVyIHRvIGNlbnRlciB0aGUgcGxheSBpY29uIHZlcnRpY2FsbHkgd2UgbmVlZCB0byBzZXQgdGhlIGxpbmUgaGVpZ2h0XG4gICAgIHRvIHRoZSBzYW1lIGFzIHRoZSBidXR0b24gaGVpZ2h0ICovXG5cbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlciAvKiBOZWVkZWQgZm9yIElFOCAqLztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICB3aWR0aDogMTAwJTtcbn1cbi52anMtZXJyb3ItZGlzcGxheSBkaXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMWVtO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi52anMtZXJyb3ItZGlzcGxheSBhLFxuLnZqcy1lcnJvci1kaXNwbGF5IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjRjRBNDYwO1xufVxuLyogTG9hZGluZyBTcGlubmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKi9cbi52anMtbG9hZGluZy1zcGlubmVyIHtcbiAgLyogU2hvdWxkIGJlIGhpZGRlbiBieSBkZWZhdWx0ICovXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgZm9udC1zaXplOiA0ZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICBvcGFjaXR5OiAwLjc1O1xufVxuLyogU2hvdyB0aGUgc3Bpbm5lciB3aGVuIHdhaXRpbmcgZm9yIGRhdGEgYW5kIHNlZWtpbmcgdG8gYSBuZXcgdGltZSAqL1xuLnZqcy13YWl0aW5nIC52anMtbG9hZGluZy1zcGlubmVyLFxuLnZqcy1zZWVraW5nIC52anMtbG9hZGluZy1zcGlubmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIG9ubHkgYW5pbWF0ZSB3aGVuIHNob3dpbmcgYmVjYXVzZSBpdCBjYW4gYmUgcHJvY2Vzc29yIGhlYXZ5ICovXG4gIC8qIGFuaW1hdGlvbiAqL1xuICAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgLW1vei1hbmltYXRpb246IHNwaW4gMS41cyBpbmZpbml0ZSBsaW5lYXI7XG4gIC1vLWFuaW1hdGlvbjogc3BpbiAxLjVzIGluZmluaXRlIGxpbmVhcjtcbiAgYW5pbWF0aW9uOiBzcGluIDEuNXMgaW5maW5pdGUgbGluZWFyO1xufVxuLyogRXJyb3JzIGFyZSB1bnJlY292ZXJhYmxlIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbiBzbyBoaWRlIHRoZSBzcGlubmVyICovXG4udmpzLWVycm9yIC52anMtbG9hZGluZy1zcGlubmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogZW5zdXJlIGFuaW1hdGlvbiBkb2Vzbid0IGNvbnRpbnVlIHdoaWxlIGhpZGRlbiAqL1xuICAvKiBhbmltYXRpb24gKi9cbiAgLXdlYmtpdC1hbmltYXRpb246IG5vbmU7XG4gIC1tb3otYW5pbWF0aW9uOiBub25lO1xuICAtby1hbmltYXRpb246IG5vbmU7XG4gIGFuaW1hdGlvbjogbm9uZTtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtbG9hZGluZy1zcGlubmVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlMDFlXCI7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDBlbSAwZW0gMC4xZW0gIzAwMDtcbn1cbkAtbW96LWtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTtcbiAgfVxufVxuQC1vLWtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpO1xuICB9XG59XG4vKiBNZW51IEJ1dHRvbnMgKENhcHRpb25zL1N1YnRpdGxlcy9ldGMuKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiovXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9uIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMGVtO1xuICAvKiAoV2lkdGggb2YgdmpzLW1lbnUgLSB3aWR0aCBvZiBidXR0b24pIC8gMiAqL1xuXG4gIHdpZHRoOiAwZW07XG4gIGhlaWdodDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAzZW07XG4gIGJvcmRlci1sZWZ0OiAyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxLjU1ZW0gc29saWQgIzAwMDAwMDtcbiAgLyogU2FtZSB3aWR0aCB0b3AgYXMgdWwgYm90dG9tICovXG5cbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSg3LCA0MCwgNTAsIDAuNSk7XG4gIC8qIFNhbWUgYXMgdWwgYmFja2dyb3VuZCAqL1xuXG59XG4vKiBCdXR0b24gUG9wLXVwIE1lbnUgKi9cbi52anMtZGVmYXVsdC1za2luIC52anMtbWVudS1idXR0b24gLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTBlbTtcbiAgYm90dG9tOiAxLjVlbTtcbiAgLyogU2FtZSBib3R0b20gYXMgdmpzLW1lbnUgYm9yZGVyLXRvcCAqL1xuXG4gIG1heC1oZWlnaHQ6IDE1ZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBsZWZ0OiAtNWVtO1xuICAvKiBXaWR0aCBvZiBtZW51IC0gd2lkdGggb2YgYnV0dG9uIC8gMiAqL1xuXG4gIC8qIGJhY2tncm91bmQtY29sb3Itd2l0aC1hbHBoYSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDcxNDFlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDcsIDIwLCAzMCwgMC43KTtcbiAgLyogYm94LXNoYWRvdyAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IC0wLjJlbSAtMC4yZW0gMC4zZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6IC0wLjJlbSAtMC4yZW0gMC4zZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBib3gtc2hhZG93OiAtMC4yZW0gLTAuMmVtIDAuM2VtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtbWVudS1idXR0b246aG92ZXIgLnZqcy1jb250cm9sLWNvbnRlbnQgLnZqcy1tZW51LFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jb250cm9sLWNvbnRlbnQgLnZqcy1tZW51LnZqcy1sb2NrLXNob3dpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIHByZXZlbnQgbWVudXMgZnJvbSBvcGVuaW5nIHdoaWxlIHNjcnViYmluZyAoRkYsIElFKSAqL1xuLnZqcy1kZWZhdWx0LXNraW4udmpzLXNjcnViYmluZyAudmpzLW1lbnUtYnV0dG9uOmhvdmVyIC52anMtY29udHJvbC1jb250ZW50IC52anMtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9uIHVsIGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjNlbSAwIDAuM2VtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjRlbTtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1dHRvbiB1bCBsaS52anMtc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1dHRvbiB1bCBsaTpmb2N1cyxcbi52anMtZGVmYXVsdC1za2luIC52anMtbWVudS1idXR0b24gdWwgbGk6aG92ZXIsXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLW1lbnUtYnV0dG9uIHVsIGxpLnZqcy1zZWxlY3RlZDpmb2N1cyxcbi52anMtZGVmYXVsdC1za2luIC52anMtbWVudS1idXR0b24gdWwgbGkudmpzLXNlbGVjdGVkOmhvdmVyIHtcbiAgb3V0bGluZTogMDtcbiAgY29sb3I6ICMxMTE7XG4gIC8qIGJhY2tncm91bmQtY29sb3Itd2l0aC1hbHBoYSAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpO1xuICAvKiBib3gtc2hhZG93ICovXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDFlbSAjZmZmZmZmO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZmZjtcbiAgYm94LXNoYWRvdzogMCAwIDFlbSAjZmZmZmZmO1xufVxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1tZW51LWJ1dHRvbiB1bCBsaS52anMtbWVudS10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAyZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIDAuM2VtIDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4vKiBTdWJ0aXRsZXMgQnV0dG9uICovXG4udmpzLWRlZmF1bHQtc2tpbiAudmpzLXN1YnRpdGxlcy1idXR0b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMGNcIjtcbn1cbi8qIENhcHRpb25zIEJ1dHRvbiAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDhcIjtcbn1cbi8qIENoYXB0ZXJzIEJ1dHRvbiAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jaGFwdGVycy1idXR0b246YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMGNcIjtcbn1cbi52anMtZGVmYXVsdC1za2luIC52anMtY2hhcHRlcnMtYnV0dG9uLnZqcy1tZW51LWJ1dHRvbiAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICB3aWR0aDogMjRlbTtcbiAgbGVmdDogLTEyZW07XG59XG4vKiBSZXBsYWNlbWVudCBmb3IgZm9jdXMgb3V0bGluZSAqL1xuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b246Zm9jdXMgLnZqcy1jb250cm9sLWNvbnRlbnQ6YmVmb3JlLFxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b246aG92ZXIgLnZqcy1jb250cm9sLWNvbnRlbnQ6YmVmb3JlIHtcbiAgLyogYm94LXNoYWRvdyAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZmZjtcbiAgLW1vei1ib3gtc2hhZG93OiAwIDAgMWVtICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAxZW0gI2ZmZmZmZjtcbn1cbi8qXG5SRVFVSVJFRCBTVFlMRVMgKGJlIGNhcmVmdWwgb3ZlcnJpZGluZylcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIGxvYWRpbmcgdGhlIHBsYXllciwgdGhlIHZpZGVvIHRhZyBpcyByZXBsYWNlZCB3aXRoIGEgRElWLFxudGhhdCB3aWxsIGhvbGQgdGhlIHZpZGVvIHRhZyBvciBvYmplY3QgdGFnIGZvciBvdGhlciBwbGF5YmFjayBtZXRob2RzLlxuVGhlIGRpdiBjb250YWlucyB0aGUgdmlkZW8gcGxheWJhY2sgZWxlbWVudCAoRmxhc2ggb3IgSFRNTDUpIGFuZCBjb250cm9scyxcbmFuZCBzZXRzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB2aWRlby5cblxuKiogSWYgeW91IHdhbnQgdG8gYWRkIHNvbWUga2luZCBvZiBib3JkZXIvcGFkZGluZyAoZS5nLiBhIGZyYW1lKSwgb3Igc3BlY2lhbFxucG9zaXRpb25pbmcsIHVzZSBhbm90aGVyIGNvbnRhaW5pbmcgZWxlbWVudC4gT3RoZXJ3aXNlIHlvdSByaXNrIG1lc3NpbmcgdXBcbmNvbnRyb2wgcG9zaXRpb25pbmcgYW5kIGZ1bGwgd2luZG93IG1vZGUuICoqXG4qL1xuLnZpZGVvLWpzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwO1xuICAvKiBTdGFydCB3aXRoIDEwcHggZm9yIGJhc2UgZm9udCBzaXplIHNvIG90aGVyIGRpbWVuc2lvbnMgY2FuIGJlIGVtIGJhc2VkIGFuZFxuICAgICBlYXNpbHkgY2FsY3VsYWJsZS4gKi9cblxuICBmb250LXNpemU6IDEwcHg7XG4gIC8qIEFsbG93IHBvc3RlciB0byBiZSB2ZXJ0aWNhbGx5IGFsaWduZWQuICovXG5cbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgLyogIGRpc3BsYXk6IHRhYmxlLWNlbGw7ICovXG4gIC8qVGhpcyB3b3JrcyBpbiBTYWZhcmkgYnV0IG5vdCBGaXJlZm94LiovXG5cbiAgLyogUHJvdmlkZSBzb21lIGJhc2ljIGRlZmF1bHRzIGZvciBmb250cyAqL1xuXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgLyogQXZvaWRpbmcgaGVsdmV0aWNhOiBpc3N1ZSAjMzc2ICovXG5cbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICAvKiBUdXJuIG9mZiB1c2VyIHNlbGVjdGlvbiAodGV4dCBoaWdobGlnaHRpbmcpIGJ5IGRlZmF1bHQuXG4gICAgIFRoZSBtYWpvcml0eSBvZiBwbGF5ZXIgY29tcG9uZW50cyB3aWxsIG5vdCBiZSB0ZXh0IGJsb2Nrcy5cbiAgICAgVGV4dCBhcmVhcyB3aWxsIG5lZWQgdG8gdHVybiB1c2VyIHNlbGVjdGlvbiBiYWNrIG9uLiAqL1xuXG4gIC8qIHVzZXItc2VsZWN0ICovXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4vKiBQbGF5YmFjayB0ZWNobm9sb2d5IGVsZW1lbnRzIGV4cGFuZCB0byB0aGUgd2lkdGgvaGVpZ2h0IG9mIHRoZSBjb250YWluaW5nIGRpdlxuICAgIDx2aWRlbz4gb3IgPG9iamVjdD4gKi9cbi52aWRlby1qcyAudmpzLXRlY2gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi8qIEZpeCBmb3IgRmlyZWZveCA5IGZ1bGxzY3JlZW4gKG9ubHkgaWYgaXQgaXMgZW5hYmxlZCkuIE5vdCBuZWVkZWQgd2hlblxuICAgY2hlY2tpbmcgZnVsbFNjcmVlbkVuYWJsZWQuICovXG4udmlkZW8tanM6LW1vei1mdWxsLXNjcmVlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi8qIEZ1bGxzY3JlZW4gU3R5bGVzICovXG5ib2R5LnZqcy1mdWxsLXdpbmRvdyB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICAvKiBGaXggZm9yIElFNiBmdWxsLXdpbmRvdy4gaHR0cDovL3d3dy5jc3NwbGF5LmNvLnVrL2xheW91dHMvZml4ZWQuaHRtbCAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDAwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICAvKiBJRTYgZnVsbC13aW5kb3cgKHVuZGVyc2NvcmUgaGFjaykgKi9cbiAgX3Bvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi52aWRlby1qczotd2Via2l0LWZ1bGwtc2NyZWVuIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4udmlkZW8tanMudmpzLWZ1bGxzY3JlZW4udmpzLXVzZXItaW5hY3RpdmUge1xuICBjdXJzb3I6IG5vbmU7XG59XG4vKiBQb3N0ZXIgU3R5bGVzICovXG4udmpzLXBvc3RlciB7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xufVxuLnZqcy1wb3N0ZXIgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi8qIEhpZGUgdGhlIHBvc3RlciBhZnRlciB0aGUgdmlkZW8gaGFzIHN0YXJ0ZWQgcGxheWluZyAqL1xuLnZpZGVvLWpzLnZqcy1oYXMtc3RhcnRlZCAudmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBEb24ndCBoaWRlIHRoZSBwb3N0ZXIgaWYgd2UncmUgcGxheWluZyBhdWRpbyAqL1xuLnZpZGVvLWpzLnZqcy1hdWRpby52anMtaGFzLXN0YXJ0ZWQgLnZqcy1wb3N0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8qIEhpZGUgdGhlIHBvc3RlciB3aGVuIGNvbnRyb2xzIGFyZSBkaXNhYmxlZCBiZWNhdXNlIGl0J3MgY2xpY2thYmxlXG4gICAgYW5kIHRoZSBuYXRpdmUgcG9zdGVyIGNhbiB0YWtlIG92ZXIgKi9cbi52aWRlby1qcy52anMtY29udHJvbHMtZGlzYWJsZWQgLnZqcy1wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogSGlkZSB0aGUgcG9zdGVyIHdoZW4gbmF0aXZlIGNvbnRyb2xzIGFyZSB1c2VkIG90aGVyd2lzZSBpdCBjb3ZlcnMgdGhlbSAqL1xuLnZpZGVvLWpzLnZqcy11c2luZy1uYXRpdmUtY29udHJvbHMgLnZqcy1wb3N0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLyogVGV4dCBUcmFjayBTdHlsZXMgKi9cbi8qIE92ZXJhbGwgdHJhY2sgaG9sZGVyIGZvciBib3RoIGNhcHRpb25zIGFuZCBzdWJ0aXRsZXMgKi9cbi52aWRlby1qcyAudmpzLXRleHQtdHJhY2stZGlzcGxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDNlbTtcbiAgcmlnaHQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLyogQ2FwdGlvbnMgU2V0dGluZ3MgRGlhbG9nICovXG4udmpzLWNhcHRpb24tc2V0dGluZ3Mge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMWVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBvcGFjaXR5OiAwLjc1O1xuICBjb2xvcjogI0ZGRjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAuNWVtO1xuICBoZWlnaHQ6IDE1ZW07XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiA0MGVtO1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5ncyB7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAyZW07XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5ncy1jb2xvcnMsXG4udmpzLWNhcHRpb24tc2V0dGluZ3MgLnZqcy10cmFja3NldHRpbmdzLWZvbnQge1xuICBmbG9hdDogbGVmdDtcbn1cbi52anMtY2FwdGlvbi1zZXR0aW5ncyAudmpzLXRyYWNrc2V0dGluZ3MtY29sb3JzOmFmdGVyLFxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5ncy1mb250OmFmdGVyLFxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5ncy1jb250cm9sczphZnRlciB7XG4gIGNsZWFyOiBib3RoO1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5ncy1jb250cm9scyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxZW07XG4gIHJpZ2h0OiAxZW07XG59XG4udmpzLWNhcHRpb24tc2V0dGluZ3MgLnZqcy10cmFja3NldHRpbmcge1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogM3B4O1xuICBtaW4taGVpZ2h0OiA0MHB4O1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5nIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIC52anMtdHJhY2tzZXR0aW5nIHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG4udmpzLWNhcHRpb24tc2V0dGluZ3MgLnZqcy10cmFja3NldHRpbmcgPiBkaXYge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG59XG4udmpzLWNhcHRpb24tc2V0dGluZ3MgLnZqcy10cmFja3NldHRpbmcgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuLnZqcy1jYXB0aW9uLXNldHRpbmdzIGxhYmVsID4gaW5wdXQge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4udmpzLWNhcHRpb24tc2V0dGluZ3MgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG59XG4vKiBIaWRlIGRpc2FibGVkIG9yIHVuc3VwcG9ydGVkIGNvbnRyb2xzICovXG4udmpzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi52anMtbG9jay1zaG93aW5nIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cbi8qICBJbiBJRTggdy8gbm8gSmF2YVNjcmlwdCAobm8gSFRNTDUgc2hpbSksIHRoZSB2aWRlbyB0YWcgZG9lc24ndCByZWdpc3Rlci5cbiAgICBUaGUgLnZpZGVvLWpzIGNsYXNzbmFtZSBvbiB0aGUgdmlkZW8gdGFnIGFsc28gaXNuJ3QgY29uc2lkZXJlZC5cbiAgICBUaGlzIG9wdGlvbmFsIHBhcmFncmFwaCBpbnNpZGUgdGhlIHZpZGVvIHRhZyBjYW4gcHJvdmlkZSBhIG1lc3NhZ2UgdG8gdXNlcnNcbiAgICBhYm91dCB3aGF0J3MgcmVxdWlyZWQgdG8gcGxheSB2aWRlby4gKi9cbi52anMtbm8tanMge1xuICBwYWRkaW5nOiAyZW07XG4gIGNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBmb250LXNpemU6IDEuOGVtO1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDMwZW07XG4gIGhlaWdodDogMTVlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG4udmpzLW5vLWpzIGEsXG4udmpzLW5vLWpzIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjRjRBNDYwO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblRoZSBvcmlnaW5hbCBzb3VyY2Ugb2YgdGhpcyBmaWxlIGxpdmVzIGF0XG5odHRwczovL2dpdGh1Yi5jb20vdmlkZW9qcy92aWRlby5qcy9ibG9iL21hc3Rlci9zcmMvY3NzL3ZpZGVvLWpzLmxlc3MgKi9cblxuLypvdmVycmlkZXMqL1xuLnZqcy1jYXB0aW9ucy1idXR0b24udmpzLW1lbnUtYnV0dG9uLnZqcy1jb250cm9sIC52anMtbWVudSB7XG4gIGJvcmRlcjogMDtcbn1cblxuLnZqcy1kZWZhdWx0LXNraW4gLnZqcy1jYXB0aW9ucy1idXR0b24udmpzLW1lbnUtYnV0dG9uLnZqcy1jb250cm9sIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudFxue1xuICBib3R0b206IDA7XG59XG4iLCIvKipcbiAqIHZpZGVvanMuYWRzLmNzc1xuICovXG5cbi8qIEFkIHBsYXliYWNrICovXG4udmpzLWFkLXBsYXlpbmcudmpzLWFkLXBsYXlpbmcgLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udmpzLWFkLXBsYXlpbmcudmpzLWFkLXBsYXlpbmcgLnZqcy1wbGF5LXByb2dyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZTQwMDtcbn1cblxuLyogQWQgbG9hZGluZyAqL1xuLnZqcy1hZC1wbGF5aW5nLnZqcy1hZC1sb2FkaW5nIC52anMtbG9hZGluZy1zcGlubmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKipcbiAqIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi5pbWEtYWQtY29udGFpbmVyIHtcbiAgdG9wOiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIE1vdmUgb3ZlcmxheSB3aGVuIGNvbnRyb2xzIGFyZSBhY3RpdmUuICovXG4udmlkZW8tanMudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLmJ1bXBhYmxlLWltYS1hZC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAwcHg7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1hY3RpdmUudmpzLXBsYXlpbmcgLmJ1bXBhYmxlLWltYS1hZC1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbn1cblxuI2ltYS1jb250cm9scy1kaXYge1xuICBib3R0b206MHB4O1xuICBoZWlnaHQ6IDM3cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg3LCAyMCwgMzAsIC43KTtcbiAgYmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoXG4gICAgICBib3R0b20sXG4gICAgICByZ2JhKDcsIDIwLCAzMCwgLjcpIDAlLFxuICAgICAgcmdiYSg3LCAyMCwgMzAsIDApIDEwMCUpOyAvKiBGRjMuNisgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChcbiAgICAgIGxpbmVhcixcbiAgICAgIGxlZnQgYm90dG9tLFxuICAgICAgbGVmdCB0b3AsXG4gICAgICBjb2xvci1zdG9wKDAlLHJnYmEoNywgMjAsIDMwLCAuNykpLFxuICAgICAgY29sb3Itc3RvcCgxMDAlLHJnYmEoNywgMjAsIDMwLCAwKSkpOyAvKiBDaHJvbWUsU2FmYXJpNCsgKi9cbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoXG4gICAgICBib3R0b20sXG4gICAgICByZ2JhKDcsIDIwLCAzMCwgLjcpIDAlLFxuICAgICAgcmdiYSg3LCAyMCwgMzAsIDApIDEwMCUpOyAvKiBDaHJvbWUxMCssU2FmYXJpNS4xKyAqL1xuICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQoYm90dG9tLFxuICAgIHJnYmEoNywgMjAsIDMwLCAuNykgMCUsXG4gICAgcmdiYSg3LCAyMCwgMzAsIDApIDEwMCUpOyAvKiBPcGVyYSAxMS4xMCsgKi9cbiAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sXG4gICAgcmdiYSg3LCAyMCwgMzAsIC43KSAwJSxcbiAgICByZ2JhKDcsIDIwLCAzMCwgMCkgMTAwJSk7IC8qIElFMTArICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsXG4gICAgcmdiYSg3LCAyMCwgMzAsIC43KSAwJSxcbiAgICByZ2JhKDcsIDIwLCAzMCwgMCkgMTAwJSk7IC8qIFczQyAqL1xuICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChcbiAgICBzdGFydENvbG9yc3RyPScjMDAwNzE0MUUnLFxuICAgIGVuZENvbG9yc3RyPScjMDcxNDFFJyxHcmFkaWVudFR5cGU9MCApOyAvKiBJRTYtOSAqL1xufVxuXG4jaW1hLWNvdW50ZG93bi1kaXYge1xuICBoZWlnaHQ6IDExcHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICB0ZXh0LXNoYWRvdzogMCAwIDAuMmVtICMwMDA7XG59XG5cbiNpbWEtc2Vlay1iYXItZGl2IHtcbiAgdG9wOiAxMnB4O1xuICBoZWlnaHQ6IDNweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTtcbn1cblxuI2ltYS1wcm9ncmVzcy1kaXYge1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VDQzU0Njtcbn1cblxuI2ltYS1jb3VudGRvd24tZGl2IHtcbiAgaGVpZ2h0OiAxMHB4O1xufVxuXG4jaW1hLXBsYXktcGF1c2UtZGl2LCAjaW1hLW11dGUtZGl2LCAjaW1hLWZ1bGxzY3JlZW4tZGl2IHtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMjBweDtcbiAgdG9wOiAxMXB4O1xuICBsZWZ0OiAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICNDQ0NDQ0M7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jaW1hLW11dGUtZGl2IHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDM1cHg7XG59XG5cbiNpbWEtZnVsbHNjcmVlbi1kaXYge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMHB4O1xufVxuXG4uaW1hLXBsYXlpbmc6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDJcIjtcbn1cblxuLmltYS1wYXVzZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDFcIjtcbn1cblxuLmltYS1wbGF5aW5nOmhvdmVyOmJlZm9yZSwgLmltYS1wYXVzZWQ6aG92ZXI6YmVmb3JlIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxZW0gI2ZmZjtcbn1cblxuLmltYS1ub24tbXV0ZWQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMDZcIjtcbn1cblxuLmltYS1tdXRlZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwM1wiO1xufVxuXG4uaW1hLW5vbi1tdXRlZDpob3ZlcjpiZWZvcmUsIC5pbWEtbXV0ZWQ6aG92ZXI6YmVmb3JlIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxZW0gI2ZmZjtcbn1cblxuLmltYS1ub24tZnVsbHNjcmVlbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTAwMFwiO1xufVxuXG4uaW1hLWZ1bGxzY3JlZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGUwMGJcIjtcbn1cblxuLmltYS1ub24tZnVsbHNjcmVlbjpob3ZlcjpiZWZvcmUsIC5pbWEtZnVsbHNjcmVlbjpob3ZlcjpiZWZvcmUge1xuICB0ZXh0LXNoYWRvdzogMCAwIDFlbSAjZmZmO1xufVxuIiwiLnZqcy1jb250cm9sLWJhciB7XG4gIHotaW5kZXg6IDE7XG59XG5cbi52aWRlby1qcyB7XG5cbiAgI3BsYXllci1lbmRjYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogMDtcblxuICAgICNyZWxhdGVkLWNvbnRlbnQge1xuICAgICAgYm90dG9tOiAzLjVlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG5cbiAgICAjbmV4dC12aWRlbyB7XG4gICAgICBib3R0b206IDIwJTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICByaWdodDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHRvcDogYXV0bztcbiAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgIGRpdiNjb3VudGRvd24ge1xuICAgICAgICBjb2xvcjogI2U3NTMwMDtcbiAgICAgICAgaGVpZ2h0OiAxMCU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcblxuICAgICAgICBAbWVkaWEgKG1peC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgI2NvdW50ZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQTs7OztFQUlFO0FBQ0Y7Ozs7OztFQU1FO0FBQ0YsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixLQUFLLEVBQUUsT0FBTyxHQUNmOztBQUNEOzs7O0VBSUU7QUFDRixVQUFVO0VBQ1IsV0FBVyxFQUFFLFNBQVM7RUFJdEIsV0FBVyxFQUFFLE1BQU07RUFDbkIsVUFBVSxFQUFFLE1BQU07O0FBRXBCOztFQUVFO0FBQ0YsK0NBQStDO0FBQy9DLEFBQWtCLGlCQUFELENBQUMsV0FBVyxDQUFDO0VBQzVCLDJEQUEyRDtFQUMzRCxPQUFPLEVBQUUsQ0FBQztFQUNWLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsT0FBTyxFQUFFLENBQUM7RUFDVixpQ0FBaUM7RUFDakMsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSxxQkFBcUIsR0FDeEM7O0FBQ0QsQUFBa0IsaUJBQUQsQ0FBQyxXQUFXLEFBQUEsTUFBTSxDQUFDO0VBQ2xDLGdCQUFnQjtFQUNoQixrQkFBa0IsRUFBRSxlQUFlO0VBQ25DLGVBQWUsRUFBRSxlQUFlO0VBQ2hDLFVBQVUsRUFBRSxlQUFlLEdBQzVCOztBQUNELEFBQWtCLGlCQUFELENBQUMsa0JBQWtCLENBQUM7RUFDbkMsUUFBUSxFQUFFLFFBQVE7RUFDbEIsb0JBQW9CO0VBQ3BCLElBQUksRUFBRSxDQUFDO0VBQ1AsR0FBRyxFQUFFLENBQUMsR0FDUDs7QUFDRCxBQUFrQixpQkFBRCxDQUFDLGtCQUFrQixBQUFBLE9BQU8sQ0FBQztFQUMxQyxPQUFP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 */
